Jar... J'arrive pas...

Résolu
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 - 10 juil. 2005 à 00:57
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 - 10 juil. 2005 à 22:51
Salut a tous...
...enfin, si j'y arrive un petit peu... j'ai bien mon jar qui s'execute parfaitement... sauf que j'ai des fichiers images dans mon prog... bref quand je fait fonctionner mon code avec eclipse pas de probleme les images s'affichent bien comme il faut la ou il faut... sauf que avec le Jar (sans eclipse donc) ca marche pas. Dans mon code, j'utilise des chemins relatifs... au debut j'utilisait des adresse de fichier absolue (genre "C://monRep/mesRessources/monFicier.jpg" ou en fait monRep etait le repertoire de mon prog). Par la suite, je me suis appercu que les chemin d'acces relatifs fonctionnaient (sous eclipse) (genre "mesRessources/monFichier.jpg"). Bref, je fait un .jar avec mon prog une fois fini en me disant que le chemin relatif devrait toujours fonctioné (convertit pour l'occasion en "C://monJar.jar/mesResources/monFichier.jpg")... bah pas du tout...
Y a t il une astuce ?

WazAbriBus
_______________________________
La direction de la RATP vous rappelle que la
dégradation d'AbriBus est passible de lourdes
sanctions.
Ne dégradez pas les AbriBus. L'AbriBus est ton ami.

9 réponses

gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
10 juil. 2005 à 21:56
C'est normal. Il ne rentre pas dans ton if (mets y un System.out.println("yo"); pour en etre sur).

Donc forcement il trouve pas l'image.



Contente toi de :



public Imageur(String AdresseImage) {

Oeuvre = new ImageIcon (getClass().getResource(AdresseImage));

}



Ce sera amplement suffisant.

gmi19oj19
3
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
10 juil. 2005 à 01:00
Je viens d'y penser... ce peut-il que ca ait quelque chose a voir avec quelque restriction d'acces aux fichiers ou un truc du style ?

AbriBus
_______________________________
La direction de la RATP vous rappelle que la
dégradation d'AbriBus est passible de lourdes
sanctions.
Ne dégradez pas les AbriBus. L'AbriBus est ton ami.
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
10 juil. 2005 à 19:08
hello,





pour acceder a une ressource citué dans un jar tu dois passer par ce mecanisme :



admetton que l'image titi.gif se trouve dans le repertoire toto du jar tata.jar

a condition biensur que tata.jar soit le jar contenant egalement tes classes



Image im = Toolkit.getDefaultToolkit().getImage(


getClass().getClassLoader().getResource("toto" + File.separator +
"titi.gif"));


WORA
0
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
10 juil. 2005 à 19:48
Ca marche pas... voici mon code:
ImageIcon ii = new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource(AdresseImage)));
ca change rien... il y a toujours pas les images... AdresseImage est une String contenant en l'occurence "images/image1.jpg" ...

AbriBus
_______________________________
La direction de la RATP vous rappelle que la
dégradation d'AbriBus est passible de lourdes
sanctions.
Ne dégradez pas les AbriBus. L'AbriBus est ton ami.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
10 juil. 2005 à 20:03
tu lance avec quoi?

parceque qd tu utilise cette methode pour lire une ressource dans un
jar ca ne marche pas avec eclipse, jbuilder ... qui eux ne se repose
pas sur le jar pour lancer l'appli que tu code donc essaye de lancer à
coté par un double clik ou encore par un terminal en saisisant "java
-jar tonJar.jar"




WORA
0
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
10 juil. 2005 à 20:17
c'est ce que je fait (par un jar executable en fait)... et pour ne rien te cacher, comme j'ai écrit une classe juste pour extraire une image d'un fichier, je l'ai juste adapté a ce que tu avais dit... voila... je te met le constructeur en entier qui, tu le verra fonctionne (enfin, devrait) aussi bien avec que sans Eclipse en l'occurence.

private ImageIcon Oeuvre;
public Imageur(String AdresseImage)
{
File isDirectFile = new File(AdresseImage);//Rajouté pour l'occasion...
this.Oeuvre = new ImageIcon(AdresseImage);
if(!isDirectFile.isFile()) //...et ca aussi...
{
Oeuvre = new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource(AdresseImage)));
}
}

AbriBus
_______________________________
La direction de la RATP vous rappelle que la
dégradation d'AbriBus est passible de lourdes
sanctions.
Ne dégradez pas les AbriBus. L'AbriBus est ton ami.
0
gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
10 juil. 2005 à 21:02
Vous vous compliquez bien la vie avec vos Toolkit et ClassLoader



ImageIcon tonImage = new ImageIcon (getClass().getResource(chemin_relatif_de_ton_image_par_rapport_au_package_de_ta_classe);


Si c'est bon, ça doit tjs marcher avant de passer en jar, ça fait gagner du temps dans les tests^^






gmi19oj19
0
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
10 juil. 2005 à 21:31
bah malheureusement ca marche toujours pas... mais alors maintenant pour le coup ca me met carrement un genre de messagebox qui provient de la Vdm et qui me dit "Could not find the main class. Program will exit." (il est a noté que ce message apparait egalement quand j'essaye d'executer le jar d'un autre ordinateur... alors que sur le mien, si j'enleve les dernieres modifs relatives aux images, ca marche tres bien sur mon ordinateur)... bref, je suis toujours dans la galere...
Voila le code que j'ai testé...:
private ImageIcon Oeuvre;

public Imageur(String AdresseImage)
{
File isDirectFile = new File(AdresseImage);
this.Oeuvre = new ImageIcon(AdresseImage);
if(!isDirectFile.isFile())
{
Oeuvre = new ImageIcon (getClass().getResource(AdresseImage));


}
}

AbriBus
_______________________________
La direction de la RATP vous rappelle que la
dégradation d'AbriBus est passible de lourdes
sanctions.
Ne dégradez pas les AbriBus. L'AbriBus est ton ami.
0
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
10 juil. 2005 à 22:51
C'est nikel... petite info utile si d'autres suivent ces traces... la chaine de caractères passée en paramètres à la fonction .getResource() est CaSe SeNsItIvE meme pour l'extention du fichier. (héhé... j'ai failli me faire avoir )

Bravo gmi19oj19 et merci a vous deux toi et Twinuts.
Bonne prog a tous et continuez les gars... je suis un grand fan !

AbriBus
_______________________________
La direction de la RATP vous rappelle que la
dégradation d'AbriBus est passible de lourdes
sanctions.
Ne dégradez pas les AbriBus. L'AbriBus est ton ami.
0
Rejoignez-nous