Bilder & Icon in Jar bzw. Exe leider weg

AngelsIN

Grünschnabel
Hallo.

Ich brauche Hilfe.
Ich arbeite mit Eclipse, wo auch alles wunderbar funktioniert. Sobald ich aus dem Programm eine Jar (über Eclipse -> Jar Export) mache, und diese dann ausführe, sind alle Bilder und Icon weg, d.h. die werden nicht geladen.
Habe schon im Internet nach Antworten gesucht, bisher aber noch keine Lösung auf mein Problem gefunden.

hier ein auszug vom code:

...
Image img = getToolkit().getImage("titleIcon.GIF");
MediaTracker mt = new MediaTracker(this);

mt.addImage(img, 0);
try {
//Warten, bis das Image vollständig geladen ist,
mt.waitForAll();
} catch (InterruptedException e) {
//nothing
}
setIconImage(img);
show();

...
ImageIcon bgImage = new ImageIcon("wallpaper.jpg");
JLabel bgLabel = new JLabel(bgImage);
...
rootpane.getContentPane().add(bgLabel, BorderLayout.NORTH);
...


Die Bilder (jpg und gif) sind im Projekt, Package und src-Ordner abgelegt. Egal wo, er lädt die nicht. Was ist falsch? In Eclipse läuft es ja...

Bitte um schnelle Hilfe. Danke.
 
Nur mal so am Rande gefragt sind die Bilder in der Jar-Datei oder extern gelagert?
1.Fall
Wenn in der Jardatei dann müsstest Du mit - hmm weiss nicht mehr so genau - mit Bytestream aus dem Jardatei auslesen.
2. Fall
Extern musst Du die genaue Position via Pfadangabe angeben.
Image img = getToolkit().getImage("titleIcon.GIF"); setIconImage(img);
show();
...
ImageIcon bgImage = new ImageIcon("wallpaper.jpg");
Mit dem Image bzw ImageIcon greifst Du meines Wissens nach nur in dein aktuelles Userverzeichnis zu.
Kann man mit Klasse System Methode getproperties user.home oder user.directory feststellen. Zur Laufzeit kannst Du diese Pfade nicht ändern.

Errata: Ups ist bei Dir nur zweiter Fall also müsste wohl mit
Image img = getToolkit().getImage("Platte:/Pfad/titleIcon.Gif");
funktionieren.
 
Zuletzt bearbeitet:
Also ich hatte auch mal schlechte Erfahrungen mit der getToolkit().getImage-Sache.

Allerdings hab ich nur Icons für Buttons gebraucht. Hiermit ging das aber problemlos, natürlich
müssen die Bilder auch mit ins .jar ins Verzeichnis img/ in diesem Fall:

Code:
ImageIcon icon1 = new ImageIcon("img/add.gif");
add_btn = new JButton( icon1 );

absolute Pfade machen keinen Sinn, sonst könnte das Programm ja nirgends anders verwendet werden ;)
Notfalls kannst du ja die Bilder mal testweise mit nem ZIP-Programm nachträglich ins .jar packen.
 
absolute Pfade machen keinen Sinn, sonst könnte das Programm ja nirgends anders verwendet werden Notfalls kannst du ja die Bilder mal testweise mit nem ZIP-Programm nachträglich ins .jar packen.
Natürlich ist der absolute Pfad nicht sinnig, da hast Du recht, aber damit würde es erstmal wieder funktionieren und man könnte sich weiter vorantasten.

Am besten wäre es wenn er es in die Jar-Datei packte, aber müsste er dann nicht via Bytestream das Bild aus der Jar-Datei auslesen ?
Hab das auch noch nicht gemacht nur mal wo gelesen. Würde mich ja dann auch interessieren, sowas kann man immer gebrauchen.
 
suche mal in den vorhandenen einträgen.
ich habe das bild in das jar eingebunden und rufe es dann aus diesem aus

tom hatte mir da einen tip gegeben...

aufruf sieht wie folgt aus
Code:
ImageIcon Icon_UP = new ImageIcon(SettingsComponent.class.getResource("/Icon/Up16.gif"));

gruss
 
Er findet die Bilder nicht, Eclipse sucht halt in Deinem workspace, war bei mir auch so.
Versuch es mal mit einer URL-Angabe, dann weiß er wo er suchen muß, und dann müßte es gehen:

Code:
		 URL base = getCodeBase();
		 String sourceMyImage = "images/bild.gif";
                 ImageIcon myImage;
		 try {		
		 	myImage = new ImageIcon(new URL (base + sourceMyImage));
		 	}
		 }
		 catch (MalformedURLException e) {
		 	e.printStackTrace();
		 	System.out.println("Error: imageURL not correct: " + e.getMessage());
		 }
 

Neue Beiträge

Zurück