Java maven项目中资源文件访问面临的问题
我无法从以下项目结构通过Java maven项目中资源文件访问面临的问题,java,Java,我无法从以下项目结构通过MyStaticClass.java类访问myXml.xml文件。 如果我把这个xml文件放在java文件夹下,我可以通过以下方式访问它: MyStaticClass.class.getResourceAsStream("[...]/myXml.xml"); 但无法通过绝对路径(/myXml.xml)或从应用程序文件夹开始的相对路径从资源文件夹访问。maven project有什么特别之处吗?还是我犯了一些错误? 请帮我解决这个问题 my-app `-- src
MyStaticClass.java
类访问myXml.xml
文件。如果我把这个xml文件放在java文件夹下,我可以通过以下方式访问它:
MyStaticClass.class.getResourceAsStream("[...]/myXml.xml");
但无法通过绝对路径(/myXml.xml)或从应用程序文件夹开始的相对路径从资源文件夹访问。maven project有什么特别之处吗?还是我犯了一些错误?请帮我解决这个问题
my-app
`-- src
-- main
|-- java
| `-- com
| `-- mycompany
| `-- app
| `-- App.java
| `-- MyStaticClass.java
`-- resources
`-- myXml.xml
您是在单元测试中调用
getResourceAsStream
,还是从包目标运行后生成的工件(.jar)运行应用程序?否则,myXml.xml
将不在类路径上
如果在单元测试中执行此操作,则
myXml.xml
需要位于src/test/resources
中,而不是src/main/resources
否,不在单元测试中运行。而不是直接从源代码运行调试井。。。您如何在eclipse中运行它?您正在使用m2 eclipse插件吗?在我看来,资源并没有像应该的那样包含在类路径中。我对eclipse不太熟悉,所以不知道这个例子。我知道,借助maven中的打包,myXml.xml将最终位于.jar的根目录中,假设目录结构与您已经粘贴的目录结构类似。正如我在命令PromptGet上运行编译的字节码(未打包到jar中)一样,您的观点是,文件将在包根上可用,但首先我需要调试。我想应该有一种方法可以实现这两个目的。如果您使用mvn eclipse:eclipse
生成.project文件,请确保src/main/resources位于类路径上。再次尝试运行mvneclipse:eclipse
,以查看它是否自动为您执行此操作。