Ausführbare Jar findet Bilddateien nicht...

Gemini22

Mitglied
Hallo :)

Ich arbeite momentan hobbymäßig an einem RPG. Wenn ich es in Eclipse ausführe funktioniert es einwandfrei. Als ich das Spiel vorgestern einem Freund zum ersten Test geben wollte und eine ausführbare Jar erstellt habe, ist diese nicht gestartet, bzw beim Laden der Bilder abgeschmiert.

Ich habe jetzt seit 2 Tagen Internetforen und die Oracle-Seite durchforstet und ca. 3-4 andere Ansätze probiert, aber es geht einfach nicht. Deswegen hoffe ich, dass ich einfach nur irgendetwas dämliches übersehen habe :oops:

Meine Ordnerstruktur, beginnend mit dem Projektnamen:

Citylife //Projekt
---src //normale Eclipse-Sourceordner
------citylife.items //meine packages
------citylife.main
------citylife.tiles
---res //von mir zum Build-Path hinzugefügter Resourcenordner
------graphics //Ordner mit den Bildern

Ich möchte also, dass die Bilder beim exportieren in der jar landen. Das funktioniert auch, sie werden nur nicht geladen und das Programm stürtzt einfach ab, während es in Eclipse klappt.

Die Bilder werden zum Zeitpunkt der Initialisierung mittels der folgenden Klasse geladen.
Meine Klasse zum Laden der Bilder:
Java:
package citylife.main;

import java.awt.image.BufferedImage;
import java.io.InputStream;
import javax.imageio.ImageIO;

public class ResourceLoader {

	// image loading from jar -> errors

        //path: z.B. "graphics/grassTile.png"
	public static BufferedImage load(String path) {
		Class c = null;
		BufferedImage buImg = null;
		try {
			c = Class.forName("citylife.main.ResourceLoader");

			InputStream s = c.getResourceAsStream("/"+path);

			buImg = ImageIO.read(s);
		} catch (Exception ex) {
		}

		return buImg;
	}
}

Diese Methode habe ich direkt von Oracle (Accessing Resources), nachdem meine eigene mit
Code:
ResourceLoader.class.getResource("/"+path)
ebenfalls nach dem exportieren streikte. Sie ist extrem langsam, aber in Eclipse funktioniert sie.

Hat jemand eine Ahnung was ich falsch mache?

Schon mal danke, Geminus22
 
Zuletzt bearbeitet:

mymaksimus

Mitglied
c = Class.forName("citylife.main.ResourceLoader");
InputStream s = c.getResourceAsStream("/"+path);

Wieso nicht einfach
Java:
ImageIO.read(getClass().getResource("..."));
Poste mal die Fehlermeldungen der jar.
Batch code:

[CODE]
java -jar datei.jar
pause
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben