我有一个maven模块 BaseProject 和src / main / java中的java类。有些类正在从src / main / resource文件夹中加载xml文件。 这非常好。
我有第二个maven项目TestProject *,它使用BaseProject作为依赖项。 TestProject是我的JUnit测试项目,因此只有src / test / java中的类。 如果我使用BaseProject中的一些加载资源的类,我得到一个nullpointer,因为找不到资源文件。 我假设我的TestProject中的src / main / resource文件夹在这种情况下被视为查找资源文件的位置。
那么如何在BaseProject中加载资源文件的方式总是在它自己的src / main / resource文件夹中?
这就是我现在的表现:
InputStream inputStream = MyBaseClass.class
.getResourceAsStream(
"foo/bar/hello.xml" );
String content = new Scanner( inputStream, "UTF-8" ).useDelimiter( "\\Z" ).next();
答案 0 :(得分:1)
getResourceAsStream("path")
从当前类中相对查找资源。如果foo.bar
是完整的包名,则应使用绝对路径getResourceAsStream("/foo/bar/hello.xml")