如何使用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 “/”。