`

获取classpath下路径的方法

 
阅读更多
    方法1(返回绝对路径):
URL url = Thread.currentThread().getContextClassLoader().getResource(""font/simkai.ttf"");
String path = url.getPath();

    方法2:
    InputStream inputStream = JdbcUtil.class.getResourceAsStream("/jdbc.properties");
    以上方法的意思是在classpath路径下查找jdbc.properties。如要打成一个jar包形式建议用这个方法获取资源文件, 如用方法1获取是会有问题的,因为方法1是获取的绝对路径,运行java -jar test.jar后获取的路径会是 d:/test.jar!/jdbc.properties这种样子,导致路径不正确,多了个叹号,在Eclipse下运行正常。

    示例1:加载properties文件
Properties properties = new Properties();
InputStream inputStream = JdbcUtil.class.getResourceAsStream("/jdbc.properties");
try {
    properties.load(inputStream);
} catch (FileNotFoundException e1) {
    log.error(e1.getMessage(), e1);
} catch (IOException e1) {
    log.error(e1.getMessage(), e1);
} finally {
    try {
        inputStream.close();
    } catch (IOException e) {
                log.error(e);
    }
}
driver = properties.getProperty("jdbc.driver");
url = properties.getProperty("jdbc.url");
username = properties.getProperty("jdbc.username");
password = properties.getProperty("jdbc.password");


    示例2:加载xml文件

 InputStream in = GenerateBaseDataServiceImpl.class.getResourceAsStream("/tableInfo.xml");
      try {
            SAXReader reader = new SAXReader();
            Document doc = reader.read(in);
            Element root = doc.getRootElement();
            Iterator<?> iterator = root.elementIterator("baseData");
            Element subElement;
            String tableSchema;
            String tableName;
            String sqlStatement;
            TableInfo tableInfo = null;
            while (iterator.hasNext()) {
                subElement = (Element) iterator.next();
                tableSchema = subElement.attribute("tableSchema").getText();
                tableName = subElement.attribute("tableName").getText();
                Attribute sqlStatementAttribute = subElement.attribute("sqlStatement");
                tableInfo = new TableInfo();
                if (sqlStatementAttribute != null) {
                    sqlStatement = sqlStatementAttribute.getText();
                    tableInfo.setSqlStatement(sqlStatement);
                }
                tableInfo.setTableSchema(tableSchema);
                tableInfo.setTableName(tableName);
                tableInfoList.add(tableInfo);
            }
        } catch (DocumentException e) {
            log.error("读取基础数据的xml出错", e);
        } finally {
            try {
                in.close();
            } catch (IOException e) {
                log.error(e.getMessage(), e);
            }
        }

  

    方法3:在web工程下获取WEB-INF路径
    Constants.WEB_INF_PATH = servletContext.getRealPath("WEB-INF");



    


分享到:
评论

相关推荐

    JAVA获取CLASSPATH路径的方法详解

    主要介绍了Java 中获取类路径 classpath 的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

    Java中获取类路径classpath的简单方法(推荐)

    下面小编就为大家带来一篇Java中获取类路径classpath的简单方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    基于获取JAVA路径,包括CLASSPATH外的路径的方法详解

    本篇文章是对获取JAVA路径,包括CLASSPATH外的路径的方法进行了详细的分析介绍,需要的朋友参考下

    java实现获取指定路径下指定格式的所有文件

    java实现 获取指定路径下 指定格式 的所有文件

    java项目中获取路径详解

    java project和java web project项目中如何获得相对路径、绝对路径问题详解

    Java路径的最终解决方案:相对路径寻址

    文中指出尽量不要使用相对于System.getProperty(\\\"user....使用上面 ClassLoaderUtil类的public static URL getExtendResource(String relativePath)方法已经能够使用相对于classpath的相对路径定位所有位置的资源。

    浅谈web项目读取classpath路径下面的文件

    主要介绍了浅谈web项目读取classpath路径下面的文件,具有一定借鉴价值,需要的朋友可以参考下

    解决bootstrap路径问题

    The archive: referenced by the classpath, does not exist.

    Java动态编译Java代码,运行在内存中,并执行

    获取当前执行的classpath的所有jar包的路径 * 3.通过java的ToolProvider创建JavaCompile,用来执行class源文件 * 4.创建DiagnosticCollector用来执行获取执行失败的错误结果 * 5.添加动态执行的编译环境 options ...

    Classpath Explorer-开源

    类路径资源管理器是一个Ant任务,它使您可以在正在使用的库中查找重复的资源。 它还提供了一组API,用于查找档案以及所使用类的档案位置。 检查主页部分以获取信息。

    hibernate操作数据库笔记

    //该方法将到classpath下解析hibernate.cfg.xml中的配置,如果不用Hibernate默认的配置文件名和路径,可在该方法中指定Hibernate配置文件的名称和路径 2.用Configuration对象获取SessionFactory和Session对象:...

    Windows Bat脚本-快速切换Java版本

    根据用户选择的数字获取对应的JDK版本路径。 将该路径设置为JAVA_HOME环境变量,并使用setx命令使其永久生效。 显示切换结果: 显示成功切换JAVA_HOME环境变量至所选JDK版本的信息。 退出操作: 用户按任意键后...

    node_classpath_builder

    类路径生成器该节点的库有助于构建Java-Classpath。 样例代码: var classpathBuilder = require ( './classpathBuilder.js' ) ;classpathBuilder . build ( '&lt;Directory&gt;' , function ( classpath ) {console . log...

    加载文件资源的三种方式

    加载文件资源的三种方式 ~1.从classpath根目录下加载指定名称的文件 2.从classpath根目录下加载指定名称的文件 3. 从classpath根目录下加载指定名称的文件 4. 获取当前文件的绝对路径

    day020-继承加强和设计模式代码和笔记.rar

    它负责将 用户类路径(java -classpath或-Djava.class.path变量所指的目录, 即当前类所在路径及其引用的第三方类库的路径,如第四节中的问题6所述)下的类库 加载到内存中。 开发者可以直接使用系统...

    java环境变量jdk1.8设置

    java环境变量设置,环境变量是操作系统提供的一种机制,用于存储和获取关键信息以方便应用程序和用户。在Java开发中,我们经常需要配置一些环境变量来指定Java运行时的一些参数。 JAVA_HOME:Java安装目录,用于指定Java...

    classes.sql

    lass.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其实也是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。

    resource-utils:Java项目的实用程序,用于获取或准备resourcelibdll ..文件,并适应普通的类,可运行的jar,Web容器等

    从classPath获取文件系统中的绝对路径 将资源从类路径复制到文件系统 UnicodeInputStream 一个适用于unicode文件的InputStream包装器。 提供此工具是因为某些Unicode文件具有BOM表头,但是java base io读取BOM作为...

    spring源代码

    通过虚拟目录获取文件资源 VirtualFile testFile = home.getChild("test.txt"); ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); Resource[] resources = resolver....

    Spring.html

    概念:面向切面编程,在不改变源码的情况下对方法进行增强,抽取横切关注点(日志处理,事务管理,安全检查,性能测试等等),使用AOP进行增强,使程序员只需要关注与业务逻辑编写. 专业术语 目标Target:需要增强的类 ...

Global site tag (gtag.js) - Google Analytics