`

获取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`路径,并介绍相关的方法和技术。 首先,`ClassLoader`类是Java中负责加载类和资源的核心组件。它提供了两个方法来获取资源: 1. `public URL getResource(String name)`...

    java项目中获取路径详解

    使用 `getResource` 方法可以获取相对路径,使用 `getRealPath()` 方法可以获取绝对路径。ClassPath 路径是 Java 项目中的一个重要概念,使用它可以 guarantee 项目在开发和发布时的正确运行。在 Java Web 项目中,...

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

    在Java编程语言中,了解如何获取类路径(classpath)是至关重要的,因为类路径决定了Java虚拟机(JVM)在运行时如何查找和加载类。本文将详细介绍在Java中获取类路径的几种常见方法,以供开发者参考。 首先,类路径...

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

    然而,描述中提到的重点是获取CLASSPATH之外的路径。CLASSPATH是Java查找类和资源的默认路径,但有时我们需要加载不在这个路径中的资源。以下是一些常用的方法: 1. 使用`this.getClass().getResource("")`:这种...

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

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

    java文件路径获取

    该方法用于获取指定路径下的资源,并返回表示该资源的`URL`对象。 - **参数**:`String path` - 指定资源的路径。 - **返回值**:`URL`对象,如果找不到资源则返回`null`。 - **特点**: - 如果`path`以 `/` 开头...

    J2EE与J2SE路径获取

    类似地,还可以通过`Thread.currentThread().getContextClassLoader().getResource("")`等方式获取ClassPath路径。 4. **通过`System.getProperty()`获取系统属性路径** 除了上述方法之外,还可以通过`System....

    ant自动获取文件路径

    标题“ant自动获取文件路径”涉及的是Apache Ant这一构建自动化工具在处理文件路径时的技巧。Apache Ant是一个基于Java的构建工具,它被广泛用于Java项目中,类似于Unix的make,但依赖于XML来描述构建过程。在Ant中...

    总结一下java获取路径几种途径

    这种方法常用于读取类路径(classpath)下的资源,比如配置文件、图片或其他资源。 ### 4. 使用java.nio.file.Path类 自Java 7起,引入了`java.nio.file`包下的`Path`类,其对文件路径的操作更为直观和方便。 ```...

    浅析Spring配置中的classpath:与classpath*:的区别

    4. 如果要加载的资源,不在当前 ClassLoader 的路径里,那么用 classpath: 前缀是找不到的,这种情况下就需要使用 classpath*: 前缀。 5. 在多个 classpath 中存在同名资源,都需要加载时,那么用 classpath: 只会...

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

    浅谈web项目读取classpath路径下面的文件 本文主要介绍了web项目读取classpath路径下面的文件,涵盖了两种类型的web项目:...关键词:classpath 路径,java classpath 路径,获取classpath路径,maven classpath 路径

    JAVA获取文件绝对路径的方法

    以下是一些在Java中获取文件绝对路径的方法: 1. `File.getAbsolutePath()` `java.io.File` 类提供了 `getAbsolutePath()` 方法,此方法返回表示文件或目录的绝对路径字符串。例如: ```java File file = new ...

    Java或web中解决所有路径问题

    以下是一些获取ClassPath路径的方法: 1. **通过类的getResource方法**: ```java String classPath = DebitNoteAction.class.getResource("").getPath(); ``` 2. **使用当前线程的上下文ClassLoader**: ```...

    Java路径问题最终解决方案之一.

    ### Java路径问题最终解决方案之一 #### 一、引言与背景 在进行Java开发时,文件...综上所述,通过理解和应用上述推荐的最佳实践及获取路径的方法,可以有效地解决Java路径问题,确保程序在不同环境下的稳定运行。

    解决bootstrap路径问题

    6. 更新或添加正确的`bootstrap.jar`路径(通常是Tomcat安装目录下的`bin`子目录),同样确保`tools.jar`(通常位于Java JDK的`lib`目录下)路径也是准确的。 7. 保存配置,然后重新启动Tomcat服务器,看看是否解决...

    将classpath路径下的配置文件加载进properties集合,并实现Student接口,多态形式,提高程序的可维护性

    `classpath`路径下配置文件的加载、Properties集合的使用以及接口的实现与多态都是为了达到这一目标。以下将详细阐述这些知识点。 首先,`classpath`是Java运行时环境寻找类文件的路径。在Java应用程序启动时,JVM...

    java项目相对路径与绝对路径问题分析

    1. 相对于classpath的相对路径:如在`file:/D:/java/eclipse32/workspace/jbpmtest3/bin/`这个classpath路径下的相对路径,这意味着你需要结合classpath的基路径来解析资源的实际位置。 2. 相对于当前用户目录的相对...

    springboot如何获取相对路径文件夹下静态资源的方法

    在Spring Boot中,静态资源可以存储在classpath下的静态资源文件夹中,也可以存储在相对路径下的文件夹中。如果我们的静态资源存储在相对路径下的文件夹中,那么如何在Spring Boot中获取这些静态资源呢? 首先,...

    java classloader classpath 张孝祥

    - 当使用类加载器的方法来获取资源时,一定要确保指定了正确的路径,否则可能导致资源找不到的问题。 通过以上分析可以看出,Java中的类加载器和类路径机制对于程序的运行至关重要。理解这些概念有助于开发者更好地...

Global site tag (gtag.js) - Google Analytics