【发布时间】:2013-03-26 22:46:23
【问题描述】:
我的程序在 Eclipse 中完美运行,但是当我导出它时,图像不显示。
我的设置看起来像
src
..gui
....Main.java
....menus
......MenuMain.java
res
...Logo.png
我从 MenuMain.java 引用 Logo.png,我尝试了很多方法;
res/Logo.png/res/Logo.png.res/Logo.png../../Logo.png- ++++
前 3 个在 Eclipse 中工作,但在 Jar 中均不工作。我检查了 Jar 文件,res 文件夹在那里,所有的图像也在那里。我还尝试编辑 MANIFEST.MF 并添加了 Class-Path:
但它仍然不起作用。运行 Jar 时我没有收到任何错误,其他所有内容都显示文件(按钮、标签、++)
编辑: 我使用的是带有 GridBagLayout 的 JPanel,我将 ImageIcon 添加到 JLabel 以便能够将其添加到 JPanel。最初我使用类似的东西:
JLabel logo = new JLabel(new ImageIcon("res/Logo.png"));
但我也尝试了其他变体,例如:
JLabel logo = new JLabel(new ImageIcon(MenuMain.class.getClassLoader().getResource("/res/Logo.png")));
也可以通过getResourceAsStream()
只有第一个在 Eclipse 中有效,但在 Jar 中不显示。其他的只是崩溃(NullPointer)
【问题讨论】:
-
这是 Swing 吗?您可以发布与读取/渲染图像相关的 sn-p 吗?
-
从 jar 运行时,通常 src 文件夹的编译内容和 res 文件夹的所有内容需要放在一起。然后你只需从类路径加载。
-
@asgs 在主帖中添加了更多信息
-
@LeeMeador:是的,我检查了最终的jar文件,它仍然与我给出的路径一致;根目录中有一个 res 文件夹,其中包含所述图像。
标签: java eclipse jar packages embedded-resource