Jump to content

  • Log In with Google      Sign In   
  • Create Account

We need your help!

We need 1 more developer from Canada and 12 more from Australia to help us complete a research survey.

Support our site by taking a quick sponsored survey and win a chance at a $50 Amazon gift card. Click here to get started!


How to make a proper Jar-file


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
9 replies to this topic

#1 Patriarch K   Members   -  Reputation: 212

Like
0Likes
Like

Posted 18 November 2012 - 05:22 PM

I've been fiddeling with this for a while now but I can't really make a good Jar-file.I have a folder called img where I have all the pictures and sound and music. When I make my jar-file I need to make a Jar-file for the code and when it's finished I need to put my folder with all the images and stuff in the same place where I have my jar.
I want to put EVERYTHING in my jar-file so I don't need to have a sub-folder every time I export my game to jar.
I know that there is something wrong with the pathway of the images but I don't know how to fix it.

Here's how it looks for me at the moment:

ImageIcon keyIcon = new ImageIcon("img\\Key.gif");
Image key = keyIcon.getImage();

I use eclipse.

Sponsor:

#2 LorenzoGatti   Crossbones+   -  Reputation: 3246

Like
0Likes
Like

Posted 19 November 2012 - 03:09 AM

Making a proper Jar archive is trivial, but you need to change your code.
After you place your images folder in the jar file along with your classes, you should load images from the classpath rather than from the file system, with methods like ClassLoader.getResourceAsStream(), the most commonly used, or ClassLoader.getResource(), which might be convenient for images because it returns an URL.

Omae Wa Mou Shindeiru


#3 Patriarch K   Members   -  Reputation: 212

Like
0Likes
Like

Posted 19 November 2012 - 11:30 AM

Hmm, could you give some kind of example? I tried to do this:

ImageIcon menuIcon = new ImageIcon(ClassLoader.getResource("Nallespel/img/menuu.png"));
Image menu = menuIcon.getImage();

But I don't know, It doesn't really do it. That is my path however. It wants to have a string and I know that I can't put the path name like I did, but I don't really get it...hmm. I'm confused :)

Edited by Patriarch K, 19 November 2012 - 11:34 AM.


#4 Glass_Knife   Moderators   -  Reputation: 7310

Like
0Likes
Like

Posted 19 November 2012 - 11:54 AM

Check out http://www.javaworld.com/javaqa/2003-08/01-qa-0808-property.html
for examples of loading files from jars. It can be confusing.

I think, therefore I am. I think? - "George Carlin"
My Website: Indie Game Programming

My Twitter: https://twitter.com/indieprogram

My Book: http://amzn.com/1305076532


#5 Patriarch K   Members   -  Reputation: 212

Like
0Likes
Like

Posted 21 November 2012 - 07:39 AM

Hmm, it's pretty confusing at the moment, but I will try out your advice! Thanks!

#6 Patriarch K   Members   -  Reputation: 212

Like
0Likes
Like

Posted 21 November 2012 - 03:15 PM

I can't get it to work. I always get nullpointerexception all the time

ImageIcon menuIcon = new ImageIcon(Game.class.getClassLoader().getResource("Nallespel/img/menuu.png"));
Image menu = menuIcon.getImage();

The folder is located there and everything is refreshed and it should really work. (Game.class is the same as this.getclass()). What to do?! I've tried everything, with // and / and nothing and \\ but nothing works. It just can't find the image.

#7 metsfan   Members   -  Reputation: 665

Like
0Likes
Like

Posted 21 November 2012 - 06:11 PM

Not sure if you are using an IDE or not, but I have had great success creating jars (both runnable and non-runnable) using eclipse. I understand your issue is related to assets. Eclipse has an option which allows you to include all assets within the jar. This has always worked out well for me. Hope this helps, best of luck.

#8 LorenzoGatti   Crossbones+   -  Reputation: 3246

Like
0Likes
Like

Posted 22 November 2012 - 02:11 AM

Do you have a "Nallespel" folder in the top level of your jar?

Omae Wa Mou Shindeiru


#9 Patriarch K   Members   -  Reputation: 212

Like
0Likes
Like

Posted 22 November 2012 - 01:27 PM

I use Eclipse and I've tried to integrate it somehow, but it doesn't even work when I try to compile so I don't bother trying to make a jar with everything included everytime. If it can find the pathway when I compile, then I'm making progress :)

Yes, I have the Nallespel folder as a top folder and in that folder I have the img and the src stuff. It feels like I've tried everything at this moment without success :(

#10 LorenzoGatti   Crossbones+   -  Reputation: 3246

Like
0Likes
Like

Posted 23 November 2012 - 05:38 AM

If you use Eclipse, you can use File > Export > JAR File, but only after setting up your images folders as source folders. For example, if you have PatriarchProject/src as source folder for Java code (class x.y.z.Foo located at PatriarchProject/src/x/y/z/Foo.java), you should also add PatriarchProject/res as a source file and place your images in locations like PatriarchProject/res/Nallespel/img/menuu.png. Your jar will contain what's inside the source folders: subfolders x and Nallenspiel, matching the expected structure.

Omae Wa Mou Shindeiru





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS