方法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`路径,并介绍相关的方法和技术。 首先,`ClassLoader`类是Java中负责加载类和资源的核心组件。它提供了两个方法来获取资源: 1. `public URL getResource(String name)`...
使用 `getResource` 方法可以获取相对路径,使用 `getRealPath()` 方法可以获取绝对路径。ClassPath 路径是 Java 项目中的一个重要概念,使用它可以 guarantee 项目在开发和发布时的正确运行。在 Java Web 项目中,...
在Java编程语言中,了解如何获取类路径(classpath)是至关重要的,因为类路径决定了Java虚拟机(JVM)在运行时如何查找和加载类。本文将详细介绍在Java中获取类路径的几种常见方法,以供开发者参考。 首先,类路径...
然而,描述中提到的重点是获取CLASSPATH之外的路径。CLASSPATH是Java查找类和资源的默认路径,但有时我们需要加载不在这个路径中的资源。以下是一些常用的方法: 1. 使用`this.getClass().getResource("")`:这种...
java实现 获取指定路径下 指定格式 的所有文件
该方法用于获取指定路径下的资源,并返回表示该资源的`URL`对象。 - **参数**:`String path` - 指定资源的路径。 - **返回值**:`URL`对象,如果找不到资源则返回`null`。 - **特点**: - 如果`path`以 `/` 开头...
类似地,还可以通过`Thread.currentThread().getContextClassLoader().getResource("")`等方式获取ClassPath路径。 4. **通过`System.getProperty()`获取系统属性路径** 除了上述方法之外,还可以通过`System....
标题“ant自动获取文件路径”涉及的是Apache Ant这一构建自动化工具在处理文件路径时的技巧。Apache Ant是一个基于Java的构建工具,它被广泛用于Java项目中,类似于Unix的make,但依赖于XML来描述构建过程。在Ant中...
这种方法常用于读取类路径(classpath)下的资源,比如配置文件、图片或其他资源。 ### 4. 使用java.nio.file.Path类 自Java 7起,引入了`java.nio.file`包下的`Path`类,其对文件路径的操作更为直观和方便。 ```...
4. 如果要加载的资源,不在当前 ClassLoader 的路径里,那么用 classpath: 前缀是找不到的,这种情况下就需要使用 classpath*: 前缀。 5. 在多个 classpath 中存在同名资源,都需要加载时,那么用 classpath: 只会...
浅谈web项目读取classpath路径下面的文件 本文主要介绍了web项目读取classpath路径下面的文件,涵盖了两种类型的web项目:...关键词:classpath 路径,java classpath 路径,获取classpath路径,maven classpath 路径
以下是一些在Java中获取文件绝对路径的方法: 1. `File.getAbsolutePath()` `java.io.File` 类提供了 `getAbsolutePath()` 方法,此方法返回表示文件或目录的绝对路径字符串。例如: ```java File file = new ...
以下是一些获取ClassPath路径的方法: 1. **通过类的getResource方法**: ```java String classPath = DebitNoteAction.class.getResource("").getPath(); ``` 2. **使用当前线程的上下文ClassLoader**: ```...
### Java路径问题最终解决方案之一 #### 一、引言与背景 在进行Java开发时,文件...综上所述,通过理解和应用上述推荐的最佳实践及获取路径的方法,可以有效地解决Java路径问题,确保程序在不同环境下的稳定运行。
6. 更新或添加正确的`bootstrap.jar`路径(通常是Tomcat安装目录下的`bin`子目录),同样确保`tools.jar`(通常位于Java JDK的`lib`目录下)路径也是准确的。 7. 保存配置,然后重新启动Tomcat服务器,看看是否解决...
`classpath`路径下配置文件的加载、Properties集合的使用以及接口的实现与多态都是为了达到这一目标。以下将详细阐述这些知识点。 首先,`classpath`是Java运行时环境寻找类文件的路径。在Java应用程序启动时,JVM...
1. 相对于classpath的相对路径:如在`file:/D:/java/eclipse32/workspace/jbpmtest3/bin/`这个classpath路径下的相对路径,这意味着你需要结合classpath的基路径来解析资源的实际位置。 2. 相对于当前用户目录的相对...
在Spring Boot中,静态资源可以存储在classpath下的静态资源文件夹中,也可以存储在相对路径下的文件夹中。如果我们的静态资源存储在相对路径下的文件夹中,那么如何在Spring Boot中获取这些静态资源呢? 首先,...
- 当使用类加载器的方法来获取资源时,一定要确保指定了正确的路径,否则可能导致资源找不到的问题。 通过以上分析可以看出,Java中的类加载器和类路径机制对于程序的运行至关重要。理解这些概念有助于开发者更好地...