getClass() getResource() - Relativer Pfad zu anderem Ordner

ascawath

Mitglied
Hallo liebe Community!

Ich versuche bei Java eine Datei (ein Bild) zu laden mittels getClass().getResource().
Der Ordner der Datei liegt allerdings außerhalb des bin Ordners:
Projekt
->bin->.class
->image->icon.jpg

Ist es möglich, das Bild trotzdem reinzuladen?
Momentan bekomme ich mit diesem Code
Code:
ImageIcon icon = new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("/image/icon.jpg")));
folgende Fehlermeldung:
Code:
Uncaught error fetching image:
java.lang.NullPointerException
	at sun.awt.image.URLImageSource.getConnection(Unknown Source)
	at sun.awt.image.URLImageSource.getDecoder(Unknown Source)
	at sun.awt.image.InputStreamImageSource.doFetch(Unknown Source)
	at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
	at sun.awt.image.ImageFetcher.run(Unknown Source)

Überprüft habe ich das schon mit
Code:
System.out.println();
, da kommt immer null raus.

Ich hoffe, ihr könnt mir helfen :)

Danke im Voraus!
 
Hi ascawath,
normalerweise ist es so, dass du getClass().getResource() nur auf Package-Ebene verwendest. Sprich, wenn du z.B. eine Text-, Bild-Datei laden willst, die in einem Package liegt.
Da du aber deine Bilddateien außerhalb von Packages liegen hast, brauchst du diesen Aufwand nicht betreiben. Du kannst direkt den Pfad zum Laden deines Bildes - als Ausgang vom Projektverzeichniss - angeben.
Java:
ImageIcon icon = new ImageIcon(Toolkit.getDefaultToolkit().getImage("/image/icon.jpg"));
Beachte aber, dass deine Bild-Dateien nicht mit in die Jar-Datei gepackt werden, wenn sie außerhalb von den Packages liegen. Diese müssen dann - zum Funktionieren des Programms - im gleichen Ordner wie die Jar-Datei liegen bzw. in der angegebenen Ordnerstruktur. Das würde bei dir bedeuten:
a/b/c/Pfad/
+ Jar-Datei​
image/​
+ icon.jpg

Viele Grüße
Fabio
 
Zurück