如何使用eclipse包含jar文件中的所有图像
我创建了一个java应用程序并将所有类捆绑在一个jar文件中。 当我从eclipse运行项目时,我的应用程序运行成功。 但是当我尝试运行我的.jar
文件时,我没有得到我的应用程序使用的图标。 在代码中,我从项目文件夹中的images目录中获取了我的图标。 如何在使用jar时向最终用户呈现这些图像文件?
我正在加载图像:
final public ImageIcon iReport=new ImageIcon("images/Report.png");
我也试过了
final public ImageIcon iquit=new ImageIcon(getClass().getResource("images/quit.png"));
和
final public ImageIcon iquit=new ImageIcon(getClass().getResource("/images/quit.png"));
但这会导致错误:
Exception in thread "main" java.lang.NullPointerException at javax.swing.ImageIcon.(Unknown Source)
您需要从类路径而不是从本地磁盘文件系统获取它。
假设images
实际上是一个包,并且该包与当前类位于同一个JAR中,那么这样做:
final public ImageIcon iReport = new ImageIcon(getClass().getResource("/images/Report.png"));
jar文件中的文件被视为“资源”。 您需要将它们作为类路径资源访问,常规的文件访问方法在那里不起作用。
尝试这个:
final public ImageIcon iReport = (new ImageIcon(getClass().getResource("images/Report.png")));
我知道很久以前就问过这个问题了,但是就像我一样,它可能会帮助其他人解决同样的问题。 我已经在使用getClass()。getResource(“…”),但资源没有使用.jar文件导出。 我通过刷新’Resources’文件夹及其每个子文件夹解决了这个问题。
100%有效
final public ImageIcon iReport = new ImageIcon(getClass().getResource("/Report.png"));
不要忘记图像path
“/”。