Java 如何在Maven项目中获取资源文件的相对路径?
我的项目使用Maven,有点复杂。我似乎无法获取资源文件的相对路径。 结构如下:Java 如何在Maven项目中获取资源文件的相对路径?,java,maven,Java,Maven,我的项目使用Maven,有点复杂。我似乎无法获取资源文件的相对路径。 结构如下: project_folder |-package1 |-src |-test |-java |-folder1 |-folder2 ... |-foldern
project_folder
|-package1
|-src
|-test
|-java
|-folder1
|-folder2
...
|-foldern
|-**myfile**
|-resources
|-folder
|-**targetfile**
在
test
中,有一个java
文件夹和一个resources文件夹
myfile
位于java
文件夹的深处。因此,在myfile
中,我想引用目标文件的相对路径。路径是什么?假设您没有更改测试源和资源位置的默认值:
MyFile.class.getResourceAsStream("../../../folder/targetfile");
用N“./”
代替3。当然,这样做更容易:
MyFile.class.getResourceAsStream("/folder/targetfile");
pom位于何处?是否有任何配置可更改默认测试源和测试资源目录?请参阅何处?来自Java类,例如classloader?来自shell脚本?从Maven Pom.xml?在项目文件夹下有一个Pom文件,在put函数中我引用的每个包下都有一个Pom文件,所以我需要一个字符串。Thanks我在put方法中使用相对路径,所以我只能在这个函数中传递一个字符串,所以这个相对路径有任何字符串形式吗?感谢“../../../../folder/targetfile”
和N“../”
可能会起作用,但传递给put()
的值如何使用?为什么路径必须是相对的呢?因为我正在本地机器上做一些开发,但是我会把它上传到我们的服务器上,所以我需要一个相对的路径。因为myfile上面有这么多文件夹,所以可能有8个../所以我想知道有没有更短的表达式。谢谢MyFile.class.getResource(“/folder/targetfile”).toString()
应在开发人员计算机和服务器上返回文件的正确路径(假设您在两台计算机上都从源代码运行)。如果从jar运行,则应使用getResourceAsStream()
创建InputStream
来读取文件。