Hallo alle zusammen,
bis jetzt habe ich nie einen Forenbeitrag erstellen müssen um eine Lösung zu finden, aber diesmal komme ich einfach wirklich nicht weiter:
Ich habe eine Software geschrieben, welche ich als .jar verbreite. Die Anwendung benötigt einige Icons (.png).
In meinem Eclipse-Workspace befindet sich folgende Ordnerstruktur:
Kompilierte Dateien: bin/de/home/tinyadmin/
Resourcen: bin/de/home/tinyadmin/resource/
Sourcecode: src/de/home/tinyadmin/
Meine Icons binde ich mit ClassLoader.getSytemResource("de/home/tinyadmin/resource/bild.png") ein, das funktioniert auch wunderbar.
Ich erstelle nun mit Eclipse ein .jar (Rechtsklick auf mein Projekt ---> Export --> "Runnable Jar") und dieses funktioniert auch problemlos.
Nun wollte ich Java-Webstart ausprobieren: Beim Start gibt es eine NullPointerException, da die Icons nicht gefunden werden können.
Ich habe daraufhin eine Methode geschrieben, welche mir die Icons auf die alt gewohnte Art und Weise einlädt (ClassLoader.getSystemResource....) und falls dies eine Exception wirft, wird eine andere Methode verwendet. Dies tat ich, da ich gelesen habe, dass das Einlesen unter Java Webstart so nicht funktioniert.
Leider finde ich nun keinen passenden Weg um meine Icons unter Java Webstart einzulesen, folgende Wege habe ich probiert:
Die gleichen Kombinationen habe ich auch für Thread.currentThread().getContextClassLoader().getResource(<kombination>) und für <Klasse_aus_meinem_Programm>.class.getClassLoader().getResource(<kombination>) durchgetestet: ohne Erfolg.
Ich habe den resource/ -Ordner vorsichtshalber auch immer nochmals direkt in das .jar (/resource) und nicht nur in den Ordner, in dem die kompilierten Klassen liegen (/de/home/tinyadmin/resource) gelegt. Ich weiß jetzt echt nicht mehr weiter, es findet einfach meine Icons nicht.
Im .jar-File selbst sieht alles gut aus, ich habe auch versucht "nur ein Jar-File" mit Eclipse zu erstellen (also nicht ein "Runnable Jar"): ebenfalls ohne Erfolg.
Hilfe!![Frown :( :(](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Gruß,
Trev
bis jetzt habe ich nie einen Forenbeitrag erstellen müssen um eine Lösung zu finden, aber diesmal komme ich einfach wirklich nicht weiter:
Ich habe eine Software geschrieben, welche ich als .jar verbreite. Die Anwendung benötigt einige Icons (.png).
In meinem Eclipse-Workspace befindet sich folgende Ordnerstruktur:
Kompilierte Dateien: bin/de/home/tinyadmin/
Resourcen: bin/de/home/tinyadmin/resource/
Sourcecode: src/de/home/tinyadmin/
Meine Icons binde ich mit ClassLoader.getSytemResource("de/home/tinyadmin/resource/bild.png") ein, das funktioniert auch wunderbar.
Ich erstelle nun mit Eclipse ein .jar (Rechtsklick auf mein Projekt ---> Export --> "Runnable Jar") und dieses funktioniert auch problemlos.
Nun wollte ich Java-Webstart ausprobieren: Beim Start gibt es eine NullPointerException, da die Icons nicht gefunden werden können.
Ich habe daraufhin eine Methode geschrieben, welche mir die Icons auf die alt gewohnte Art und Weise einlädt (ClassLoader.getSystemResource....) und falls dies eine Exception wirft, wird eine andere Methode verwendet. Dies tat ich, da ich gelesen habe, dass das Einlesen unter Java Webstart so nicht funktioniert.
Leider finde ich nun keinen passenden Weg um meine Icons unter Java Webstart einzulesen, folgende Wege habe ich probiert:
- <Klasse_aus_meinem_Programm>.class.getResource("bild.png")
- <Klasse_aus_meinem_Programm>.class.getResource("/bild.png")
- <Klasse_aus_meinem_Programm>.class.getResource("resource/bild.png")
- <Klasse_aus_meinem_Programm>.class.getResource("/resource/bild.png")
- <Klasse_aus_meinem_Programm>.class.getResource("de/home/tinyadmin/resource/bild.png")
- <Klasse_aus_meinem_Programm>.class.getResource("/de/home/tinyadmin/resource/bild.png")
Die gleichen Kombinationen habe ich auch für Thread.currentThread().getContextClassLoader().getResource(<kombination>) und für <Klasse_aus_meinem_Programm>.class.getClassLoader().getResource(<kombination>) durchgetestet: ohne Erfolg.
Ich habe den resource/ -Ordner vorsichtshalber auch immer nochmals direkt in das .jar (/resource) und nicht nur in den Ordner, in dem die kompilierten Klassen liegen (/de/home/tinyadmin/resource) gelegt. Ich weiß jetzt echt nicht mehr weiter, es findet einfach meine Icons nicht.
Im .jar-File selbst sieht alles gut aus, ich habe auch versucht "nur ein Jar-File" mit Eclipse zu erstellen (also nicht ein "Runnable Jar"): ebenfalls ohne Erfolg.
Hilfe!
Gruß,
Trev