Java : accès à un fichier du jar

Fermé
Nico - 7 févr. 2009 à 01:19
azureus33 Messages postés 49 Date d'inscription vendredi 16 janvier 2009 Statut Membre Dernière intervention 7 février 2010 - 7 févr. 2009 à 13:05
Bonjour,

Je rencontre un petit problème avec l'affichage d'images et l'accès à d'autres fichiers présents dans le jar où se trouvent mes classes...

Auparavant, j'avais ceci dans mon code :
File f = new File("images/ecranTitre.jpg");
ecranTitre = ImageIO.read(f);
et ça fonctionnait très bien si mon jar se trouvait au même niveau que le répertoire images, mais bien sûr pas ailleurs...

J'ai donc remplacé ce morceau de code par :
File f = new File(getClass().getResource("images/ecranTitre.jpg").toURI());
ecranTitre = ImageIO.read(f);

ou bien par :
File f = new File((URLClassLoader)ClassLoader.getSystemClassLoader().findResource("images/ecranTitre.jpg").toURI());
ecranTitre = ImageIO.read(f);

mais dans aucun des deux cas l'image ne s'affiche. Elle ne s'affiche d'ailleurs même plus si le jar se trouve au même niveau que le répertoire images...

J'ai essayé d'afficher l'URI renvoyée par getClass().getResource("images/ecranTitre.jpg").toURI() et j'ai obtenu
jar:file:!chemin/complet/du/jar!/images/ecranTitre.jpg
ce qui me semblait pourtant correct...

C'est sans doute tout simple... Mais est-ce que quelqu'un aurait une idée pour me dépanner ?

Merci d'avance à tous !
A voir également:

1 réponse

azureus33 Messages postés 49 Date d'inscription vendredi 16 janvier 2009 Statut Membre Dernière intervention 7 février 2010 7
7 févr. 2009 à 13:05
Moi j'ai supprimé dans mon chemin le !jar et sa marche sans problème.
Je vais te cherché mon code.

A ben non je mis suis pris autrement. Voila le code utilisé pour récupérer le logo de mon programme dans mon jar.


      //Principal_main est le nom de ma classe ou se trouve mon main
      URL urlClass=Principal_main.class.getResource("Principal_main.class");
      //Définir le chemin de l'image par rapport à la classe du utilisé pour urlClass(ici Principal_main.class)
      URL url_logo = new java.net.URL(urlClass, "../.../monimage.jpg");
      jframe.setIconImage(ImageIO.read(url_logo.openStream())) ;
1