这是一个maven项目,并且在[[资源目录中有一个图像:]]├─ src
├─ main
├─ java
└─ resources
└─imgs
└─logo.png
代码:
public class Test {
public static void main(String[] args) {
InputStream stream = Test.class.getClassLoader().getResourceAsStream("/imgs/logo.png");
InputStream stream1 = Test.class.getClassLoader().getResourceAsStream("imgs/logo.png");
System.out.println(stream == null ? "stream is null!" : "stream is not null!");
System.out.println(stream1 == null ? "stream1 is null!" : "stream1 is not null!");
}
}
当我添加
module-info.java
进行投影时,将打印:stream is null!
stream1 is null!
但是当我从项目中删除
module-info.java
时,将打印:stream is null!
stream1 is not null!
为什么?以及如何使用ClassLoader
在模块化Java项目中加载资源?
[这是一个Maven项目,并且在资源目录中只有一个图像:├─src├─主├─java└─资源└─imgs└─logo.png代码:public class Test {...