Problème lors du lancement d'un jar

le duke Messages postés 3 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 14 septembre 2004 - 13 sept. 2004 à 22:16
gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 - 14 sept. 2004 à 19:09
Salut à tous, j'ai vraiment un problème bizarre et il ne me semble pas avoir rencontré de sujet en parlant, alors je le poste ici.

Voilà mon problème : je creer une classe qui hérite de JFrame, dans laquelle j'affiche un JPanel avec une image. Comme j'aimerai en faire un jar pour la portabilité, j'inclue mon image dans les sources de mon projet et je l'affiche dans un JLabel à l'aide de la méthode JLable.SetIcon(new ImageIcone(monImage)).

Alors jusqu'ici tout va bien, je developpe sous eclipse et lorsque je fait Run pour mon projet j'ai bien ma fenêtre qui s'affiche avec l'image voulue. Mais une fois le jar crée, si je le lance à l'aide de la commande : java -jar monJar.jar, et bien la fenêtre s'affiche mais vide, mon image à disparue !

Il est à noter qu'à aucun moment il ne se produit d'erreur. Voici le code que j'utilise :

package packageDeTest;

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Dimension;
import javax.swing.ImageIcon;
import javax.swing.JLabel;

public class ClassePrincipale extends JFrame
{
private JPanel monPanel;
private JLabel monLabel;

public ClassePrincipale(String arg0)
{
super(arg0);
this.monPanel = new JPanel();
monPanel.setPreferredSize(new Dimension(300,150));

this.monLabel = new JLabel();
monLabel.setIcon(new ImageIcon("packageDeTest/GLFlogotransparent.gif"));
monPanel.add(monLabel);

this.getContentPane().add(monPanel);

this.setLocation(350,250);
this.pack();
this.show();

}

public static void main(String[] args)
{
new ClassePrincipale("fenêtre de test");
}
}

pour ce qui est de l'arborescence, j'ai mis l'image dans le package principal de mon projet, donc elle se trouve au même endroit que mon fichier.java

Je ne comprend vraiment pas comment je peux obtenir 2 résultats différents entre la compilation et l'execution du jar, d'autant plus que le code ne change pas...

Si quelqu'un peut m'apporter une réponse je lui en serais très reconnaissant.

Merci
A voir également:

3 réponses

gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
14 sept. 2004 à 11:26
monLabel.setIcon(new ImageIcon (getClass().getResource("packageDeTest/GLFlogotransparent.gif")));


gmi19oj19
0
le duke Messages postés 3 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 14 septembre 2004
14 sept. 2004 à 11:48
ok merci ça marche maintenant 8-)

mais j'ai consulteé pas mal d'aide en ligne et jamais je n'ai vu ce genre de code, c'est quand même louche...

...enfin merci quand même

Ha oui ! pour ceux que ça aidera aussi, la ligne de code exacte est en fait :

monLabel.setIcon(new ImageIcon (getClass().getResource("GLFlogotransparent.gif")));

il ne faut pas préciser le package, apparement cette fonction va chercher directement dans le répertoir qui contient la classe qui l'invoque ( je pense... )
0
gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
14 sept. 2004 à 19:09
C'est cela.
Et si tu regarde mon morpion (autopromo :big) ), j'utilise cette méthode pour charger les images.

Elle permet de les récupérer dans le jar et non dans le répertoire courant

gmi19oj19
0
Rejoignez-nous