ich habe ein Projekt mit mehreren Packages. Eines davon ../lib beinhaltet
Gif-Grafiken die in anderen Packages benutzt werden. Nun will ich das Ganze
gern als ausführbare Jar haben und versuche das derzeit mit OneJar.
Soweit so gut..er erstellt alles wunderbar - nur beim Ausführen findet das
Programm die Grafiken nicht mehr.
In der main/main.jar sind die Grafiken immernoch im lib-Verzeichniss
vorhanden nur findet er die eben nicht.
Muss ich bei Ressourcen was beachten ? Die Grafiken werden im Code selber
relativ angesprochen:
new ImageIcon(getClass().getResource("/xxx/lib/JTree_Query.gif"));
Könnt ihr mir sagen was ich falsch mache ?
Danke für die Hilfe,
oliver
PS: FatJar hab ich auch schon probiert, aber der bringt mir beim Ausführen
Fehler von wegen doppelt vorhandener Klassen mit unterschiedlichen
Signaturen. Das konnte ich bisher auch nicht lösen...
Verwende den aktuellen Thread-ClassLoader:
Thread.currentThread().getContextClassLoader().getResource(...)
Innerhalb eines One-Jars ist das der onejar-Classloader.
Viele Grüße,
feri
> Verwende den aktuellen Thread-ClassLoader:
>
> Thread.currentThread().getContextClassLoader().getResource(...)
Also ich hab jetzt :
new
ImageIcon(Thread.currentThread().getContextClassLoader().getResource("xxx/li
b/JTree_Query.gif"));
Nun erhalte ich aber beim normalen Starten (d.h. in eclipse) eine
NullPointerExc:
java.lang.NullPointerException at
sun.awt.image.URLImageSource.getConnection(URLImageSource.java:97)
So meintest du das doch aber, oder ?!
Grüsse,
oliver
Damit der Class-Loader unter Eclipse die Resourcen-findet muss das
Resourcen-Verzeichnis
in den Classpath eingebunden werden.
Viele Grüße,
feri
ich nutze immer etwas in der Form wie:
this.getClass().getResource ("../lib/JTree_Query.gif")); // relativen
Pfad von der Klasse zur Resource
Wenn es sich um mehrere Resourcen handelt lege ich meist dort wo auch
die Bilder sind ein Klasse ResourceManager an, welche dann mit getImage
etc. das oben genannte Konstrukt (natürlich dann ohne relativen Pfad)
nutzt.
mfg
Bastie
> ja, so meinte ich das.
>
> Damit der Class-Loader unter Eclipse die Resourcen-findet muss das
> Resourcen-Verzeichnis
> in den Classpath eingebunden werden.
super...hat geklappt.
Danke dir vielmals!
oliver
Das neue Release 0.0.22 löst das Problem.
Viele Grüße,
feri