Bilder in .jar Datei laden

Strooobel

Mitglied
Hallo Leute,

ich habe ein Programm in BlueJ erstellt. In dem Programm lade ich verschiedene Bilder (Hintergrundbild, ImageIcons für die Buttons, etc.)
Wenn ich das Programm über BlueJ ausführe klappt dies auch ohne Probleme. Ich habe aus dem Programm nun eine .jar Datei erstellt (mittels BlueJ).

Beim ausführen dieser, wird das Programm zwar geladen und funktioniert auch, nur wird keines der Bilder geladen.

Habt ihr eine Idee wieso und wie ich diese einbinden kann?


Gruß
Strooobel
 
Du gibst uns recht wenig Details. Hier die Dinge, die du prüfen musst:
A) Sind die Dateien, die Du lesen willst, im jar File drin?
B) wie liest Du die Datei? Normale File Operationen gehen nicht, denn du willst ja eine Datei aus der jar Datei laden. Dazu nimmst du am einfachsten eine Klasse aus dem jar File und rufst dann MyClass.class.getRessourceAsStream(ressource) auf.
 
Danke für Deine Antwort kneitzel! 🙂

zu A) Ja sind sie.
zu B) Derzeit lade ich die Bilder mit dem folgenden Befehl:

public ImageIcon imgYMAG1Pos_0 = new ImageIcon("imgYMAG1Pos_0.PNG");

Wie genau soll kann ich den von dir empfohlenen Code implementieren?

Sry, ich bin noch neu in Java 😀


Gruß
 
Etwa public ImageIcon imgYMAG1Pos_0 = new ImageIcon(MyClass.class.getRessource("imgYMAG1Pos_0.PNG"));, wobei der Klassenname natürlich angepasst werden muss. Der Pfad ist dabei vom aktuellen package und vom genauen Ort des Bildes innerhalb der Jar abhängig, wenn du uns das beides verrätst, können wir da noch was zu sagen 😉
 
Ich habe den Code so implementiert, wie du ihn vorgeschlagen hast und habe "MyClass" mit der entsprechenden Klasse ergänzt.
Beim starten der .jar erhalte ich jetzt folgende Fehlermeldung:

"Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:217)
at BedienPanelMitte.<init>(BedienPanelMitte.java:44)
at Gui.<init>(Gui.java:109)
at Gui.main(Gui.java:96)"

Weißt du wieso und wie ich diese beseitigen kann?
 
Dann wird der Pfad nicht stimmen, kannst du mal den Inhalt deiner Jar zeigen? Geht zb mit jar tf NameDeinerJar.jar über die Konsole
 

Zurück
Oben