954,518 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Adding resources to .jar

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

Zibo
Light Poster
41 posts since May 2009
Reputation Points: 12
Solved Threads: 3
 

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

stephen84s
Nearly a Posting Virtuoso
1,443 posts since Jul 2007
Reputation Points: 668
Solved Threads: 154
 

Certainly, it helps alot. Thank You.

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

Zibo
Light Poster
41 posts since May 2009
Reputation Points: 12
Solved Threads: 3
 

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? :|

Zibo
Light Poster
41 posts since May 2009
Reputation Points: 12
Solved Threads: 3
 
Ezzaral
Posting Genius
Moderator
15,986 posts since May 2007
Reputation Points: 3,250
Solved Threads: 847
 

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.

BestJewSinceJC
Posting Maven
2,772 posts since Sep 2008
Reputation Points: 874
Solved Threads: 354
 
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) blablaYou 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(

Zibo
Light Poster
41 posts since May 2009
Reputation Points: 12
Solved Threads: 3
 

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.

BestJewSinceJC
Posting Maven
2,772 posts since Sep 2008
Reputation Points: 874
Solved Threads: 354
 

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...

Zibo
Light Poster
41 posts since May 2009
Reputation Points: 12
Solved Threads: 3
 

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.

BestJewSinceJC
Posting Maven
2,772 posts since Sep 2008
Reputation Points: 874
Solved Threads: 354
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You