[JAVA] Inclure les ressources d'image dans le fichier jar

L'image disparaît lors de la sortie du fichier jar depuis IntelliJ

Lorsque j'ai créé un outil GUI à l'aide de Swing, le fichier image était correctement affiché lors de son exécution sur IntelliJ, mais j'ai rencontré le problème que le fichier image ne pouvait pas être affiché correctement lorsqu'il était sorti sous forme de fichier jar. Lorsque j'ai cherché sur Google, cela semblait être un phénomène bien connu et une solution est apparue immédiatement. Ce qui suit est un résumé des solutions dans mes propres notes.

Explication de la situation

Pour pratiquer Swing, la boîte à outils GUI de Java, j'ai créé un programme simple qui n'affichait qu'une icône de sablier. スクリーンショット 2020-01-22 10.42.20.png Comme ça

L'icône est nommée fichier hourglass.png et enregistrée directement dans le dossier src. De plus, la lecture du fichier icône est décrite comme suit. ImageIcon myIcon = new ImageIcon("hourglass.png "); スクリーンショット 2020-01-22 10.49.04.png

L'exécution de ce code sur IntelliJ exécutera le programme avec l'icône de sablier correctement affichée. Cependant, lorsque j'exécute le fichier jar et exécute le programme depuis le terminal, l'icône ne peut pas être affichée comme indiqué ci-dessous.

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

Solution

Utilisez ClassLoader.getResource ().

En Java, ClassLoader.getResource () est préparé comme un processus pour acquérir des informations sur les ressources telles que des fichiers.

Dans le code précédent, ʻImageIcon myIcon = new ImageIcon ("hourglass.png "); `


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

En réécrivant en tant que, même après la sortie sous forme de fichier jar, la ressource image sera correctement référencée, de sorte que l'image sera affichée. スクリーンショット 2020-01-22 10.42.20.png je l'ai fait

Source de référence

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

Recommended Posts

Inclure les ressources d'image dans le fichier jar
Inclure l'image dans le fichier jar avec la méthode statique java
Inclure les ressources d'image dans le fichier jar
Télécharger le fichier image de l'application Rails sur S3
Comment ajouter un fichier jar dans ScalaIDE
[Java] Lire les fichiers dans src / main / resources
Inclure le pot externe dans le package avec Spring boot2 + Maven3
Inclure le code source généré par Doma dans le JAR source
Ajoutez un fichier jar externe dans un projet IntelliJ.
[Java] Récupère le fichier dans le fichier jar quel que soit l'environnement
Comment déboguer le fichier jar généré avec Eclipse
Créez un fichier jar qui peut être exécuté sur Gradle
Installer du fil dans l'image du docker
Je suis resté coincé dans le fichier
Qu'est-ce qu'un fichier JAR?
Image JavaFX-Load en arrière-plan
Les fichiers texte placés dans des ressources en Java ne peuvent pas être lus lorsqu'ils sont mis en jarr
[Gradle] L'histoire selon laquelle le fichier de classe n'existait pas dans le fichier jar
Comment créer un fichier jar sans dépendances dans Maven
Ajouter un horodatage au nom de fichier JAR dans Gradle