可能重复:
在 jar 中加载文件
最后,我使我的 jar 文件几乎可以正常工作。几乎,因为当我在创建 jar 文件后对其进行测试并启动时,会出现包含在存档中的图片。但是当我将 jar 文件移动到任何其他目录并尝试启动时 - 我收到有关缺少图片的异常(尽管应用程序仍在工作,但不显示该图片)。
这是它在我的目录中的样子:
[aqv@voland Converter]$ ll
razem 112
-rw-rw-r--. 1 aqv aqv 51673 10-30 20:42 Converter.java
-rw-rw-r--. 1 aqv aqv 23 10-30 20:41 Converter.mf
-rw-rw-r--. 1 aqv aqv 1167 10-30 20:43 GBC.java
-rw-rw-r--. 1 aqv aqv 1023 10-30 20:58 ImagePanel.java
-rw-rw-r--. 1 aqv aqv 44729 10-30 20:35 programHelp.png
-rw-rw-r--. 1 aqv aqv 3713 10-30 20:43 SettingsManager.java
[aqv@voland Converter]$
[aqv@voland Converter]$
图片文件从 ImagePanel 调用, programHelp是一个字符串,然后将其传递给适当的方法:
public ImagePanel() {
programHelp = "programHelp.png";
try {
helpImage = ImageIO.read(new File(programHelp));
} catch (IOException e) {
e.printStackTrace();
}
}
如您所见,没有指定目录,所以我猜主类应该在 jar 的主目录中查找图像,不是吗?
我通过以下方式创建 jar 文件(当然是在编译文件之后):
[aqv@voland Converter]$ jar cvfm Converter.jar Converter.mf *.class *.png
[aqv@voland Converter]$
图片文件在 jar 存档中可见,在类文件中。我的问题:在这种情况下,图像文件放置有什么问题?