Frage Stellen Sie Icon Image in der Jar-Datei ein


Der folgende Code funktioniert einwandfrei, wenn er auf NetBeans ausgeführt wird.

this.getFrame().setIconImage(Toolkit.getDefaultToolkit().getImage("PlagiaLyzerIcon.png"));

Sobald es jedoch in Jar-Datei eingebaut wurde, war das Symbol verschwunden.

Jeder hat eine Idee, was ist das Problem? Mir wurde klar, dass ich das Icon-Image auf das Root-Verzeichnis setzen muss, aber nach dem Kompilieren in JAR ist das Icon verschwunden.

Danke für jede Hilfe ...

Hallo allerseits, das Problem wurde mit dem folgenden Code gelöst,

 this.getFrame().setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("plagialyzer/resources/PlagiaLyzerIcon.png")));

Es funktioniert einmal in JAR-Datei kompiliert.


6
2018-03-20 13:58


Ursprung


Antworten:


Benutzen

this.getFrame().setIconImage(
new imageIcon(getClass().getClassLoader().getResource("PlagiaLyzerIcon.png"))
);

stattdessen.

Hinweis:

Diese Zeile funktioniert nur, wenn sich die Bilder im Stammverzeichnis der JAR-Datei befinden. Wenn nicht, müssen Sie den Ordner in der Zeichenfolge angeben:

getResource("yourfolder/PlagiaLyzerIcon.png")

7
2018-03-20 17:37



Das liegt daran, dass die Netbeans-IDE einen anderen Klassenpfad hat als beim Ausführen der JAR-Datei (ohne Ant).

Angenommen, Ihr Netbeans-Projekt befindet sich vor Ort /project/:

Der Klassenpfad ist: /project/build/classes/ und das Projekt root /project/. Wenn Ihre Symbole in folgendem Verzeichnis gespeichert sind: /project/myicons/Dann sind sie Teil des Klassenpfades /project/ ist auch. Aber wenn Sie Ihr Projekt erstellen, nur Dateien in /project/build/classes/ wird schließlich in der jar-Datei enden, aus der diese Dateien "build" sind /projcet/src/.

Lösung:

Verschiebe deine Icons in ein Quellpaket: /project/src/myicons/

Oder füge das hinzu /project/myicons/ Ordner zu Ihren Quellen (klicken Sie mit der rechten Maustaste auf Ihr Projekt -> Eigenschaften -> Quellen -> fügen Sie dort Ihren Ordner hinzu)


2
2018-03-20 14:15



Danke vielmals...

Hier der Code, der für mich funktioniert !!!!

    BufferedImage image = null;

    try {
        image = ImageIO.read(getClass().getClassLoader().getResource("images/frame.png"));
    } catch (IOException e) {
        e.printStackTrace();
    }


    super.setIconImage(image);

1
2017-09-18 14:53



Haben Sie den Build-Pfad zu Ihren Symbolen in den Optionen von Netbean angegeben, bevor Sie das JAR exportieren? Bei Eclipse wird ein Quellordner innerhalb des Java-Build-Pfades hinzugefügt, wie in diesem Beispiel gezeigt Bildschirmfoto. Sollte das bei Netbeans genauso sein?


0
2018-03-20 14:07



Benutze NetBeans wie mich selbst, setze einfach das Logo (in meinem Fall mylogo.png) in das Verzeichnis src / in deinem Projektordner. Stellen Sie sicher, Größe ist 32 x 32 Pixel, um die beste Qualität für das Symbol zu gewährleisten. Ich konnte keine .ico-Bilder als JFrame-Symbol festlegen, aber .png funktionierte gut. Indem ich JFrame erweitere, setze ich mein Jar-Icon direkt mit:

Image getIcon()
{ return Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("mylogo.png")); }

setIconImage(getIcon());

Nach dem Bereinigen und Erstellen von JAR wird das JAR-Dateisymbol immer noch nicht geändert (immer noch das JAR-Standard-Symbol), aber wenn Sie die JAR-Datei ausführen, ist das Symbol in der Titelleiste und Taskleiste Ihr benutzerdefiniertes Symbol. Sie können das JAR-Dateisymbol ändern, indem Sie Verknüpfungen erstellen und das Symbol für diese Verknüpfung ändern. Die beste Auflösung für das Verknüpfungssymbol ist 512 x 512 Pixel .ico


0
2017-08-26 12:05