Maven项目中获取classpath和资源文件的路径
2017-06-07 14:56
429 查看
假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/Java/下, 那么java文件夹和resources文件夹在运行时就是classpath的真实位置,如果
有一个文件位于 src/main/resources/test.txt
有一个类位于 src/main/java/com/qunar/MyClass.java
FILE_NAME = "test.txt"
通过如下代码
可以直接获取文件路径
而classpath可以通过如下代码获取
还有一种方法可以通过当前类的加载路径使用相对路径来获取资源地址
那么这种就会有问题,因为此时的路径是相对于MyClass这个类在运行时路径而言的,test.txt和MyClass并不在一个层级,因为MyClass之前还有两个包
可以如下解决
有一个文件位于 src/main/resources/test.txt
有一个类位于 src/main/java/com/qunar/MyClass.java
FILE_NAME = "test.txt"
通过如下代码
MyClass.class.getClassLoder().getResource(FILE_NAME).getPath();
可以直接获取文件路径
而classpath可以通过如下代码获取
MyClass.class.getClassLoder().getResource("").getPath();
还有一种方法可以通过当前类的加载路径使用相对路径来获取资源地址
MyClass.class.getResource(FILE_NAME).getPath()
那么这种就会有问题,因为此时的路径是相对于MyClass这个类在运行时路径而言的,test.txt和MyClass并不在一个层级,因为MyClass之前还有两个包
可以如下解决
MyClass.class.getResource(File.separator + "FILE_NAME").getPath(); // 这种方法相当于使用绝对运行时路径 MyClass.class.getResource(".." + File.separator + ".." + File.separator + FILE_NAME).getPath(); // 这种方法相当于使用相对MyClass的运行时路径
相关文章推荐
- Maven项目中获取classpath和资源文件的路径
- Maven项目中获取classpath和资源文件的路径
- 转:Maven项目中获取classpath和资源文件的路径
- Maven项目中获取classpath和资源文件的路径
- Java中获取classpath路径下的资源文件【ClassLoader.getSystemResource("")获取当前ClassPath的绝对URI路径,还可以以流的形式获取文件】
- MyBatis-- maven自动生成映射文件及classPathEntry 路径修改
- Class.getResource和ClassLoader.getResource 获取资源文件路径
- Maven pom.xml 配置说明: 打jar包不包括指定资源文件和.class xml,配置不跑testCase,建pom父子项目
- 获取项目编译后class文件绝对路径
- java项目下资源文件路径的获取
- java项目下资源文件路径的获取
- 根据文件名称获取资源文件路径 pathForResource
- 关于getClass().getResourceAsStream(path)跨项目取文件资源返回值为null的报错
- 获取maven web项目的资源路径
- 关于maven项目如何获取在resource下的文件路径
- Myeclipse中指定.settings/target/.classpath/.project文件不提交到SVN,检出后项目结构不是maven项目
- Maven项目读取resources下文件的路径问题(getClassLoader的作用)
- 修改eclipse下maven项目的java文件编译目录路径
- 在JAVA文件中获取该项目的相对路径
- String.valueOf(Thread.currentThread().getContextClassLoader().getResource("")) 获取项目的绝对路径(shiro项目中来的八)