想象以下文件夹结构
- 文件夹
- 应用程序.jar
- img(其实我不知道它在那里)
App.jar 里面也有img
文件夹。
所以我使用以下代码读取图像img
InputStream is = IconManager.class.getClassLoader().getResourceAsStream("img/1.png");
BufferedImage bimage = ImageIO.read(is);
is.close();
我之前就知道这个片段非常适合从 jar 本身读取文件。但是由于偶然有过时的 img 版本,folder
它开始从外部读取图像文件img
:文件夹/img 而不是 jar 本身。我花了很多时间来弄清楚。
我的问题是为什么代码片段默认尝试从文件夹/img 而不是 App.jar 中读取?
UPD:我使用java -jar App.jar
from运行它folder
在构建 jar 之前,我使用 Windows 7 并且从未classpath
在 Eclipse 中指定