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.
How to make a proper Jar-file
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.
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.
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
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
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.
for examples of loading files from jars. It can be confusing.
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.
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.
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.
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
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
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.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement