每当在以感叹号结尾的目录中运行可执行 jar 时,getResourceAsStream 方法都会返回null 。
对于以下示例,我有一个 Eclipse 项目,其目录结构如下:
src\ (Source Folder)
main\ (Package)
Main.java
res\ (Source Folder)
images\
Logo.png
我正在阅读 Logo.png 如下:
public static void main(String[] args) throws IOException {
try (InputStream is = Main.class.getClassLoader().getResourceAsStream("images/Logo.png")) {
Image image = ImageIO.read(is);
System.out.println(image);
}
}
2个测试用例见附件。首先,可执行 jar 从目录“D:\test123!@#”启动,没有任何问题。其次,可执行jar是从目录“D:\test123!@#!!!”启动的,有问题。
是否不支持以感叹号结尾的目录?代码错了吗?
提前致谢。