[JAVA] Fügen Sie Bildressourcen in die JAR-Datei ein

Das Bild verschwindet, wenn eine JAR-Datei von IntelliJ ausgegeben wird

Als ich mit Swing ein GUI-Tool erstellt habe, wurde die Bilddatei bei der Ausführung auf IntelliJ ordnungsgemäß angezeigt. Ich hatte jedoch das Problem, dass die Bilddatei bei der Ausgabe als JAR-Datei nicht ordnungsgemäß angezeigt werden konnte. Als ich googelte, schien es ein bekanntes Phänomen zu sein, und sofort kam eine Lösung heraus. Das Folgende ist eine Zusammenfassung der Lösungen als meine eigenen Notizen.

Situationserklärung

Um Swing, Javas GUI-Toolkit, zu üben, habe ich ein einfaches Programm erstellt, das nur ein Sanduhrsymbol anzeigt. スクリーンショット 2020-01-22 10.42.20.png So was

Das Symbol heißt hourglass.png und wird direkt im Ordner src gespeichert. Darüber hinaus wird das Lesen der Symboldatei wie folgt beschrieben. ImageIcon myIcon = new ImageIcon("hourglass.png "); スクリーンショット 2020-01-22 10.49.04.png

Wenn Sie diesen Code auf IntelliJ ausführen, wird das Programm mit dem ordnungsgemäß angezeigten Sanduhrsymbol ausgeführt. Wenn ich jedoch die JAR-Datei ausgeben und das Programm vom Terminal aus ausführen, kann das Symbol nicht wie unten gezeigt angezeigt werden.

スクリーンショット 2020-01-22 11.23.16.png

Lösung

Verwenden Sie ClassLoader.getResource ().

In Java wird ClassLoader.getResource () als Prozess zum Abrufen von Ressourceninformationen wie Dateien vorbereitet.

Im vorherigen Code war die Beschreibung "ImageIcon myIcon = new ImageIcon (" hourglass.png ");"


ClassLoader cl = this.getClass().getClassLoader();
ImageIcon myIcon = new ImageIcon(cl.getResource("hourglass.png "));

Durch Umschreiben als wird die Bildressource auch nach der Ausgabe als JAR-Datei ordnungsgemäß referenziert, sodass das Bild angezeigt wird. スクリーンショット 2020-01-22 10.42.20.png Ich habs gemacht

Referenzquelle

https://virtualwalk.hatenadiary.org/entry/20121013/1350127275 http://hiesuke.hatenablog.com/entry/2016/12/30/101639

Recommended Posts

Fügen Sie Bildressourcen in die JAR-Datei ein
Fügen Sie das Bild mit der statischen Java-Methode in die JAR-Datei ein
Fügen Sie Bildressourcen in die JAR-Datei ein
Laden Sie die Rails-App-Image-Datei in S3 hoch
So fügen Sie eine JAR-Datei in ScalaIDE hinzu
[Java] Dateien in src / main / resources lesen
Nehmen Sie das externe Glas mit Spring boot2 + Maven3 in das Paket auf
Fügen Sie den von Doma generierten Quellcode in die Quell-JAR ein
Fügen Sie eine externe JAR-Datei in ein IntelliJ-Projekt ein.
[Java] Holen Sie sich die Datei unabhängig von der Umgebung in das JAR
So debuggen Sie die generierte JAR-Datei mit Eclipse
Erstellen Sie eine JAR-Datei, die auf Gradle ausgeführt werden kann
Installieren Sie das Garn im Docker-Image
Ich blieb in File stecken
Was ist eine JAR-Datei?
JavaFX-Bild im Hintergrund laden
Textdateien, die in Ressourcen in Java abgelegt sind, können nicht gelesen werden, wenn sie beschädigt sind
[Gradle] Die Geschichte, dass die Klassendatei nicht in der JAR-Datei vorhanden war
So erstellen Sie eine JAR-Datei ohne Abhängigkeiten in Maven
Fügen Sie dem JAR-Dateinamen in Gradle einen Zeitstempel hinzu