How to includes all images in jar file using eclip

2019-01-06 21:28发布

问题:

I made a java application and bundled all classes in a jar file. When I run the project from eclipse, my application is running successfully. But when I try to run my .jar file, I am not getting the icons used by my application. In the code I get my icons from images directory present in project folder. How can I present these image files to the end user when using a jar?

I am loading the image like so:

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

I have also tried

final public ImageIcon iquit=new ImageIcon(getClass().getResource("images/quit.png"));

and

final public ImageIcon iquit=new ImageIcon(getClass().getResource("/images/quit.png"));

But this results in an error:

Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)

回答1:

You need to get it from the classpath instead of from the local disk file system.

Assuming that images is actually a package and that this package is inside the same JAR as the current class, then do so:

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


回答2:

The files in jar files are treated as "Resources". you need to access them as a classpath resource, regular File access methods does not work there.

Try this:

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


回答3:

I know this was asked long ago, but it might help others with the same problem, like me. I was already using getClass().getResource("..."), but the resource didn't get exported with .jar file. I solved the problem by refreshing the 'Resources' folder, and its every subfolder.



回答4:

100% works

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

Don't forget about "/" at path for image.



标签: java eclipse jar