The moose likes Java in General and the fly likes Creating a Self-Contained Jar Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Java in General
Bookmark "Creating a Self-Contained Jar" Watch "Creating a Self-Contained Jar" New topic

Creating a Self-Contained Jar

Gad Flailimbs

Joined: Mar 21, 2007
Posts: 15
I've looked around and read some stuff but I'm still confused on how to get my Jar file to be self-contained. I'm using Eclipse with separate Source and Class folders. I use about 40 different images while running my program and they're all in different folders.

I've tried:


I've also read about some ClassLoader you can use to get a similar effect:

ClassLoader cldr = this.getClass().getClassLoader();
ImageIcon area2 = cldr.getResource("Maps/area2.png");

Neither of these seem to work. I've tried putting all the files in the source and bin folders. Regardless of all of this I still can't seem to get it to work properly. The Jar's just won't function without those folders near them even though I include the folders & files in the jar when I create it.

What do I need to do to get this to work?

Java Game:<br /><a href="" target="_blank" rel="nofollow"></a><br />Webcomic:<br /><a href="" target="_blank" rel="nofollow"></a>
Ulf Dittmer

Joined: Mar 22, 2005
Posts: 42965
You'll need to start the path with a slash, as in
Wayan Saryada
Ranch Hand

Joined: Feb 05, 2004
Posts: 105


You can also use:

Website: Learn Java by Examples
Gad Flailimbs

Joined: Mar 21, 2007
Posts: 15
How about if I want to read in a text file from the jar? I've found that some constructors for Readers don't like reading from URLs that getClass().getResource("maps.txt") provide.

Would I use something like the following:
getClass().getResource("maps.txt").getPath(); ?

I think the class I'm using for reading files is the Scanner but I'll have to check on that.
I agree. Here's the link:
subject: Creating a Self-Contained Jar
It's not a secret anymore!