Eclipse Icon aus res Ordner wird nicht beim Exportieren angezeigt

julianpe

Aktives Mitglied
Hallo,

ich habe folgendes Problem.
Meine Anwendung soll ein Icon sowie ein Bild besitzen.

Folgender relevanter Code macht das ganz gut:
Java:
ImageIcon icon = new ImageIcon("res/logo16.png");
            fenster.setIconImage(icon.getImage());
           
            // Platziert ein Icon ins Fenster
            ImageIcon image = new ImageIcon("res/logo64.png");
            lblIconEncrypt.setIcon(image);
            lblImageDecrypt.setIcon(image);

Die Einbindung in Eclipse sieht bei mir so aus:
unbenanntkoin7.png


Wenn ich mein Programm in Eclipse ausführe, dann funktioniert alles wunderbar.
Wenn ich nun mein fertiges Programm in eine lauffähige .jar Datei erzeuge, dann funktionieren die Bilder und das Icon leider nicht mehr. Was mache ich falsch?

Danke und Gruß
 
Damit hast du auch schon das Problem erkannt. Dein "res" Ordner entspricht einem Root-Ordner im Classpath.
Nimm einmal das "res/" aus dem String im Source-Code weg.

In Eclipse funktioniert es nur zufällig, weil nicht nur mit "res/", sondern auch vom Projektverzeichnis aus mit der Suche begonnen wird.
 
Hat leider nichts gebracht, wenn ich "/res" aus dem String entferne.
Nun wird es nicht mal mehr in Eclipse richtig dargestellt. Und im exportierten .jar auch nicht.
 
Habe es unterschiedlich probiert:

Java:
ImageIcon icon = new ImageIcon("/logo16.png");

als auch:

Java:
ImageIcon icon = new ImageIcon("logo16.png");
 
Du musst die Methode ClassLoader#getResource nutzen, um den Pfad zu deinem Bild zu finden.

Java:
ClassLoader cl = this.getClass().getClassLoader();
URL url = cl.getResource("/logo.jpg");
ImageIcon img = new ImageIcon(url);
 

Neue Themen


Zurück
Oben