Export Jar.
Résolu/Fermé
A voir également:
- Jar export finished with warnings
- Fichier jar ✓ - Forum Java
- Roissy piac export - Forum Consommation & Internet
- Dns probe finished bad config ✓ - Forum DNS
- Export favoris chrome - Guide
- Dns probe finished no internet ✓ - Forum Réseau
3 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
2 sept. 2017 à 00:40
2 sept. 2017 à 00:40
Bonjour,
Un warning ce n'est pas une erreur donc rien de grave, ce sont probablement les mêmes avertissements que ceux obtenus à la compilation et correspondant à du code souligné en jaune/orange sur Eclipse.
Quant au fait que ton JAR ne fasse rien quand tu l'ouvres il peut y avoir plusieurs raisons.
Soit tu n'as pas de manifest donc il ne sait pas où est ta méthode main. Soit c'est une application en mode console et par défaut il n'en a pas.
Dans les deux cas il faudrait démarrer le JAR depuis une invite de commande pour en savoir davantage.
Un warning ce n'est pas une erreur donc rien de grave, ce sont probablement les mêmes avertissements que ceux obtenus à la compilation et correspondant à du code souligné en jaune/orange sur Eclipse.
Quant au fait que ton JAR ne fasse rien quand tu l'ouvres il peut y avoir plusieurs raisons.
Soit tu n'as pas de manifest donc il ne sait pas où est ta méthode main. Soit c'est une application en mode console et par défaut il n'en a pas.
Dans les deux cas il faudrait démarrer le JAR depuis une invite de commande pour en savoir davantage.
java -jar C:\...\programme.jar
Bonjour,
Merci de m'avoir répondu. C'est la première fois que je passe par l'invite de commande donc je ne sais pas si je m'y suis bien prise mais lorsque l'invite de commande s'ouvre, je mets donc le code que tu m'as passé en précisant le chemin de mon fichier JAR et il me dit:
"Exception in thread "main" java.lang.NullPointerException
at javax.swing.imageIcon.<init><ImageIcon.java:21?>
at com.julie.Scene.<init>Scene.java:231>
at com.julie.Main.main<Main.java;28>
Merci de m'avoir répondu. C'est la première fois que je passe par l'invite de commande donc je ne sais pas si je m'y suis bien prise mais lorsque l'invite de commande s'ouvre, je mets donc le code que tu m'as passé en précisant le chemin de mon fichier JAR et il me dit:
"Exception in thread "main" java.lang.NullPointerException
at javax.swing.imageIcon.<init><ImageIcon.java:21?>
at com.julie.Scene.<init>Scene.java:231>
at com.julie.Main.main<Main.java;28>
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
3 sept. 2017 à 15:59
3 sept. 2017 à 15:59
Bonjour,
Donc si ton JAR ne fonctionne pas c'est à cause de cette erreur...
Il faudrait voir quel est ton code aux lignes indiquées (Scene.java ligne 231) mais si tu as un NullPointerException c'est probablement parce que tu initialises ImageIcon avec une valeur null, par exemple un fichier image qui n'existe pas ou n'est pas à l'endroit où le programme le cherche...
Donc si ton JAR ne fonctionne pas c'est à cause de cette erreur...
Il faudrait voir quel est ton code aux lignes indiquées (Scene.java ligne 231) mais si tu as un NullPointerException c'est probablement parce que tu initialises ImageIcon avec une valeur null, par exemple un fichier image qui n'existe pas ou n'est pas à l'endroit où le programme le cherche...
amatova
>
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 sept. 2017 à 16:46
3 sept. 2017 à 16:46
Pourtant Eclipse arrive à lire l'image et elle se trouve au même endroit que toutes les autres images. Mais en tout cas, voici la ligne en question:
IcoFond = new ImageIcon(getClass().getResource("/image/fondDesert4.png"));
IcoFond = new ImageIcon(getClass().getResource("/image/fondDesert4.png"));
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
>
amatova
3 sept. 2017 à 17:02
3 sept. 2017 à 17:02
Est-ce que tes images sont dans le JAR ou uniquement dans ton projet Eclipse ?
Parce que /image/fondDesert4.png étant un chemin relatif, Eclipse le trouve car tu as configuré ton projet pour qu'il accède à ce dossier, mais si tu génères un JAR, que tu le déplaces, que tu le donnes à quelqu'un d'autre, etc. si tes images ne sont pas dans le JAR ça ne va pas pouvoir fonctionner...
Parce que /image/fondDesert4.png étant un chemin relatif, Eclipse le trouve car tu as configuré ton projet pour qu'il accède à ce dossier, mais si tu génères un JAR, que tu le déplaces, que tu le donnes à quelqu'un d'autre, etc. si tes images ne sont pas dans le JAR ça ne va pas pouvoir fonctionner...
Aucune idée. Peut-être qu'il n'est en effet que dans mon projet Eclipse mais n'aurais-je pas dû avoir plus d'erreur auquel cas ?
Et sinon, comment puis-je le mettre dans le JAR.
En tout cas pour l'instant j'avais créé un dossier image dans mon projet java sur Eclipse où j'y avais mis mes images puis j'exportais le tout avec les autres packages.
Et sinon, comment puis-je le mettre dans le JAR.
En tout cas pour l'instant j'avais créé un dossier image dans mon projet java sur Eclipse où j'y avais mis mes images puis j'exportais le tout avec les autres packages.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
3 sept. 2017 à 17:33
3 sept. 2017 à 17:33
"n'aurais-je pas dû avoir plus d'erreur auquel cas ?"
Le programme s'arrête à la première erreur qu'il rencontre, s'il continuait il y aurait sûrement autant d'erreurs que d'images manquantes...
Voici comment faire ça à la main, cela te permettra au passage de voir comment ça fonctionne sans Eclipse...
Voici l'architecture de mon projet de test :
Dans le fichier make.bat j'ai mis :
Il s'agit donc de lancer le fichier make.bat en cliquant dessus pour lancer la compilation, la création du jar et son exécution.
Remarque : selon ton projet il faudra peut-être faire quelques ajustements.
Le programme s'arrête à la première erreur qu'il rencontre, s'il continuait il y aurait sûrement autant d'erreurs que d'images manquantes...
Voici comment faire ça à la main, cela te permettra au passage de voir comment ça fonctionne sans Eclipse...
Voici l'architecture de mon projet de test :
C:\workspace
│
├───make.bat
│
├───com
│ └───julie
│ └───Main.java
│
└───image
└───fondDesert4.png
Dans le fichier make.bat j'ai mis :
javac com/julie/*.java
echo Main-Class: com.julie.Main > manifest.txt
jar cvmf manifest.txt Julie.jar com/julie/*.class image/*
java -jar Julie.jar
pause
Il s'agit donc de lancer le fichier make.bat en cliquant dessus pour lancer la compilation, la création du jar et son exécution.
Remarque : selon ton projet il faudra peut-être faire quelques ajustements.
J'ai réussie !
Le problème venait du fait que l'image FondDesert4.png a une majuscule dans le fichier source mais dans Eclipse, je l'avais pas mis en majuscule, ce qui ne l'avait pas gêné pour autant. Dès lors que j'ai mis la majuscule, tout allait bien.
Le problème venait du fait que l'image FondDesert4.png a une majuscule dans le fichier source mais dans Eclipse, je l'avais pas mis en majuscule, ce qui ne l'avait pas gêné pour autant. Dès lors que j'ai mis la majuscule, tout allait bien.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
4 sept. 2017 à 08:14
4 sept. 2017 à 08:14
En effet ce n'était pas grand chose au final... mais je n'y aurai pas pensé, à moins de le voir dans le résultat du tree /F qui ne marchais pas chez toi.
Du coup maintenant tu sais utiliser l'invite de commande pour compiler un programme, c'est important pour la suite parce qu'en vrai on ne fait jamais confiance à un IDE pour créer le livrable.
Du coup maintenant tu sais utiliser l'invite de commande pour compiler un programme, c'est important pour la suite parce qu'en vrai on ne fait jamais confiance à un IDE pour créer le livrable.