Hello!

I'm searching and searching and can't find a solution...

In my project I've got a folder 'Images' where from my application loads icons etc. Running project from IDE (NetBeans) it's of course working fine, but I want to create stand-alone application, so I create .jar file.

And here's a problem - how to add that folder 'Images' to my .jar file, so application could load icons from it?

I tried to simply put that folder into .jar file, but it doesn't seem to be that easy...


Zibo

Recommended Answers

All 9 Replies

This should help. It was the first search result in Google.

commented: That Google guy knows all kinds of good stuff! +21

Certainly, it helps alot. Thank You.

BTW: Funny site. :) (so offensive! :D)

Ok, it didn't solve my problem as I thought. I do know now how to create, update etc. jar files, but still my application doesn't loads icons from inside of .jar file.

I've got in code such instructions as:

new JLabel( new ImageIcon("Images\\icon.png") );

When I create .jar file the inside looks like:

Images (my icons)
MyPackage (with files .class)
META-INZ (manifest)

And icons are loaded ONLY if Images folder is in same place where .jar file. I mean:

MyFolder:
..
Images\
myApp.jar

So.. what am I doing wrong then? :|

You could also simply go to the directory where your netbeans projects are, and drop any files that your program needs in the right place. Then netbeans will automatically include them in your jar file and your program will find them correctly.

Use getClass().getResource() to load them.

So I've changed all parts in my code where I load images to:

new ImageIcon(getClass().getResource("Images\\icon.png")

etc.

I've put folder Images to my package directory. Running project from IDE works fine. So I compiled code, .jar has been created.
Folder Images is located inside .jar . I double click the .jar -> nothing happens. When I run .jar from console I get:

NullPointerException at javax.swing.ImageIcon.(init)(ImageIcon.java) blabla

You could also simply go to the directory where your netbeans projects are, and drop any files that your program needs in the right place. Then netbeans will automatically include them in your jar file and your program will find them correctly.

When I put Image directory into my package, so NetBeans could add it to .jar, then created .jar file reads images from outside of .jar, not from inside.


Officially I'm sick of it. I spent 6h on that today and still didn't get it working. x(

No, I'm saying you should literally go to the folders on your computer, and change the location of the folder with your images in it from there. I'd give you more specific directions, but I'm no expert with this, I just know it works because I did it less than a week ago. After you do this though, you must click run-> clean & build main project.

I really want to get to know how is this working, so I'll show You how I try to do this the best I can, so You could point precisely where's the mistake.

This is how my NetBeans project looks like. Previously in this directory was Images directory and running project from IDE loaded it from here.

[img]http://img7.imageshack.us/img7/3991/12369439.jpg[/img]

Src directory (also have tried to put Images into CircleCross package)

[img]http://img7.imageshack.us/img7/3558/53527242.jpg[/img]

Example code loading image. (without using getResource() methods):

setIconImage( new ImageIcon("Images\\drawSmall.png").getImage() );

And the content of generated .jar :

[img]http://img7.imageshack.us/img7/8868/41867443.jpg[/img]


None of images are loaded...

My project for netbeans shows the following packages under src folder:

calendar
application
database
org

Where org contains the image files that calendar uses. So I don't know what problem you are having exactly. I'm no expert. But I do know netbeans 6.5.1 made the jar file that I wanted it to make when all the packages were under src folder. I didn't write the code for the calendar, so I'm not sure how it loads the image, but it probably uses the method Ezzaral suggested, which is what you should be using also.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.