JavaFX Bilder in executable jar laden

@SupressWarnings()

Aktives Mitglied
Ich versuche gerade mein Dorfbauspiel in eine executable jar zu packen, damit Freunde das auch ohne größeren Aufwand spielen und testen können. Dabei erhalte ich eine Fehlermeldung, weil die Bilder nicht geladen werden können. Sie sind in der jar erhalten, und auch alle gegoogelten Lösungen änderten nichts.
Caused by: java.lang.NullPointerException
at game.gui.Gui.initialize(Gui.java:56)

Die betreffende Codezeile:
Java:
startGC.drawImage(new Image(getClass().getResource("../resources/loginPane.png").toExternalForm()), 500, 150, 250, 50);
wär nett wenn mir irgendwer helfen könnte!
 
../resources kann nicht in deine, Bundle liegen....

Davon ab wie wäre es du machst aus der einen Zeile mal ein paar mehr und checkst einige rückgabewerte?
 
../resources kann nicht in deine, Bundle liegen....
warum nicht?
game
|-player
|-util
|-resources
|-gui
|-village
|-sql

ich wechsle mit .. nach game und dann in resources wo die Bilder liegen.

Davon ab wie wäre es du machst aus der einen Zeile mal ein paar mehr und checkst einige rückgabewerte?
Hab ich mal gemacht:
Caused by: java.lang.NullPointerException
at game.gui.Gui.initialize(Gui.java:61)

Java:
Class<? extends Gui> cls = getClass();
       URL url = cls.getResource("../resources/loginPane.png");
       String url2 = url.toExternalForm();

Die letzte ist Zeile 61.
 
Heisst: die URL-Variable "url" ist null. Oder anders: Die Resource konnte nicht gefunden werden.
Ich habe bei JavaFX mitunter auch Probleme mit relativen Pfaden und verwende daher eigentlich ausschliesslich absolute. Also "/game/resources/loginPane.png" - der initiale Slash ist, glaub ich, optional.
 
Bei mir durften Bilder nicht in einem übergeordneten Verzeichnis oder in einem Parallelverzeichnis sein.
Ich habe es dann so gemacht:
Die java-Datei BilderSpielfiguren.java ist im package uebung.gui.bilder
Die Bild-Dateien sind im package uebung.gui.bilder.spielfiguren
 

Zurück
Oben