2016-07-13 13 views
0

Ich habe versucht, mein Projekt als ausführbares Glas zu exportieren, aber meine Ressourcen werden nicht geladen, da ich direkt vom Projektpfad aus auf das Bild zugreifen wollte. Zum Beispiel:Java: Zugriff auf Bilder in Ressourcen nicht möglich

ImageIcon icon = new ImageIcon("resources/icon.png"); 

Dies funktionieren würde, wenn ich das Projekt von Eclipse-lief selbst, aber ich bemerkte, dass die Bilder nicht in der JAR-Datei wurden eingeschlossen sind. Nach der Recherche habe ich herausgefunden, dass ich Quellordner erstellen und die Bilder/Textdateien darin einfügen muss, und dann getClass(). GetResource() verwenden, um auf sie zuzugreifen. Wenn ich dies jedoch tue, wird die URL immer als null zurückgegeben.

Als Referenz ist das, was wie mein Projekt-Explorer aussieht:

Test 
---src 

---resources 
    ---icon.png 

---config 
    ---file.ini 

Und hier ist der Code, der mir eine Nullpointer schenkt, wenn für den Zugriff auf icon.png versuchen:

ImageIcon icon = getClass().getResource("/resources/icon.png"); 

Alternativ Ich habe auch versucht:

ImageIcon icon = getClass().getClassLoader().getResource("resources/icon.png"); 

Aber das endet auch in einem NullPointerExc eption. Ich habe viele Lösungen online überprüft, aber keine von ihnen schien für mich zu funktionieren. Bitte beachten Sie, dass ich auch auf die INI-Datei zugreifen kann. Eine Lösung, die nur für Bilder funktioniert, wird mein Problem nicht vollständig lösen. Jede Hilfe wäre sehr dankbar, danke.

+0

, wenn sie als ein Glas verpackt , wo ist icon.png? Könnten Sie auch die Jar-Struktur veröffentlichen? – alexbt

+0

Ressourcen müssen als Ordner unter/src gehen – basic

+0

Versuchen Sie '" /icon.png "' - oder schauen Sie mit 7zip, WinZip oder so in den Jar für den Pfad. Ohne den führenden '/' wäre der Pfad relativ zum Paketpfad der Klasse, auf der getResource ausgeführt wird. –

Antwort

0

Ihre Struktur muss sein:

TEST 
    -SRC 
    -Resources 
     -icon.png 

Die Art und Weise Ihr Code gerade jetzt gibt es kein Bild ist, weil Ihr Code verweist/src/Ressourcen nicht Test/Ressourcen

+0

Das schien für mich eigentlich nicht zu funktionieren. Wenn ich versuche, einen Source-Ordner innerhalb von src hinzuzufügen, wird er automatisch nach draußen verschoben, und wenn ich versuche, ihn auszufertigen, wird daraus ein Paket. Ich versuchte es mit dem Paket und es schien noch eine NullPointerException zu geben, aber Joops Antwort funktionierte für mich. EDIT: Nevermind, kompilierte ich es wieder und es begann zu arbeiten? Vielen Dank! – 0Calories

+0

Hinzufügen: Damit diese Lösung funktioniert, musste ich "/icon.png" als URL verwenden. EDIT: Habe gerade herausgefunden, dass dies nur in Eclipse funktioniert, und als ich es als Runnable Jar exportiert habe, hat es nicht funktioniert. Die Joop-Lösung mit der Art und Weise, wie mein Projekt eingerichtet wurde, funktionierte jedoch auch nach dem Export. – 0Calories