我的程序在 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)