如何使用eclipse包含jar文件中的所有图像

时间:2011-06-16 13:52:54

标签: java 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.<init>(Unknown Source)

4 个答案:

答案 0 :(得分:11)

您需要从类路径而不是从本地磁盘文件系统获取它。

假设images实际上是一个包,并且该包与当前类在同一个JAR中,那么这样做:

final public ImageIcon iReport = 
    new ImageIcon(getClass().getResource("/images/Report.png"));

答案 1 :(得分:2)

jar文件中的文件被视为“资源”。您需要将它们作为类路径资源访问,常规的文件访问方法在那里不起作用。

试试这个:

final public ImageIcon iReport = (new ImageIcon(getClass().getResource("images/Report.png")));

答案 2 :(得分:1)

我知道很久以前就问过这个问题,但是对于像我这样同样问题的人来说,这可能会有所帮助。我已经在使用getClass()。getResource(“...”),但资源没有使用.jar文件导出。 我通过刷新'Resources'文件夹及其每个子文件夹解决了这个问题。

答案 3 :(得分:1)

100%有效

final public ImageIcon iReport = new ImageIcon(getClass().getResource("/Report.png"));

请勿忘记path处的图片“/”。