Problem mit Bildern beim Exportieren von Projekt?
Hallo nochmals!
Ich programmiere derzeit ein kleines Spiel in Java und nutze Eclipse. Beim Exportieren werden die Bilder allerdings nicht mitgeladen. Ich habe es versucht nur einen Jar file und Runnable Jar File zu nehmen aber nichts funktioniert.Die Bilder hab ich in den bin/package reingatan und in Eclipse funktioniert es immer super. Geladen hab ich die Bilder immer mit zwei Wegen. Einer für Hintergründe und ein Weg für Bewegte bilder wie Charaktere usw.
Bewegte Bilder:
ImageIcon b = new ImageIcon((getClass().getReousrce("picture.png");
img = b.getIMage();
gezeichnet habe ich die dann so:
g.drawImage(img, x, y, x, y, null);
repaint();
Hintergründe hab ich mit nem Label gezeichnet:
JLabel label = new JLabel();
label.setSize(x, y);
label.setIcon(new ImageIcon((getClass().getResource("picture.png");
label.setVisible(true);
frame.add(label);
Wie gesagt in Eclipse hat alles funktioniert...
Danke schonmal für jede Hilfe ;)
Zeig den Inhalt des JAR. So wie das dasteht, müsste das Bild im Root liegen.
In dem exportierten Jar Datei sind zwei Ordner:
de
META-INF
im "de" Ordner ist dann "hackerbanane"
darin dann "projektname"
und darin dann die ganzen .class Dateien
1 Antwort
Die Bilder und andere Ressourcen müssen im JAR-File liegen. Wenn du kein Package angibst, dann direkt im obersten Verzeichnis.
Du musst also dafür sorgen, dass Eclipse diese als Ressourcen deines Projekts erkennt und genauso wie die .class-Files mit exportiert. Hier ein paar Hinweise (ich habe selbst kein Eclipse zur Hand und schon lange nichts mehr damit gemacht, sorry):
Bei etwas professionellerem Entwickeln würde ich dringend raten, das Projekt als Maven- oder Gradle-Projekt auszuführen. Das garantiert reproduzierbare Builds und man weiß, was wo landet, egal mit welcher IDE.
Danke ich hab es jetzt gelöst. Ich musste die Bilder mit einer URL laden. Hier steht das aber alles noch mal sehr ausführlich:
https://stackoverflow.com/questions/25635636/eclipse-exported-runnable-jar-not-showing-images
Einfach runterscrollen bis zur ersten Antwort das ist sehr gut beschrieben!