[Eclipse] Problème chemin de fichier image

Résolu/Fermé
Evenkore
Messages postés
17
Date d'inscription
dimanche 16 mars 2014
Statut
Membre
Dernière intervention
2 août 2014
- 21 juin 2014 à 12:01
KX
Messages postés
16581
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
26 juillet 2022
- 21 juin 2014 à 14:17
Plop :)

Alors voilà, j'ai un problème un peu bête, j'essaie de charger une image dans un JFrame par l'intermédiaire de ImageIO :

try {
BufferedImage img = ImageIO.read(new File(/* Problème ici */);
JLabel lab = new JLabel(new ImageIcon(img));
lab.setBounds(this.getWidth()/2-256, 0, 512, 158);
this.ctr.add(lab); //this hérite de JFrame et ctr est un JPanel
} catch (IOException e) {
e.printStackTrace();
}
Le problème est que la classe dont ce bloc fait partie se situe dans un package net.cfour.winmanage et que l'image, elle, est dans net.cfour.images. Si, en tant que nom de fichier pour l'instanciation de File, j'entre "net/cfour/images/img.png", le Build&Run d'Eclipse fonctionne et l'image apparaît bien, mais quand j'exporte mon projet en Runnable JAR file, pas d'image affichée! Et pourtant l'arborescence de mon projet Eclipse est la même que celle de mon .jar... comment faire? :/

1 réponse

KX
Messages postés
16581
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
26 juillet 2022
2 972
21 juin 2014 à 12:18
Bonjour,

D'une part, les images ne devraient pas être dans les packages mais dans une hiérarchie séparée. D'autre part, tu ne peux pas accéder aux fichiers avec
new File
dans un JAR, il faut y accéder comme une ressource : Retrieving Resources
0
Evenkore
Messages postés
17
Date d'inscription
dimanche 16 mars 2014
Statut
Membre
Dernière intervention
2 août 2014

21 juin 2014 à 14:11
Merci! :)
Problème résolu ;)
Par contre, j'arrive quand même à accéder à mon fichier cfour.cfg externe avec une
new File
. 'fin c'est ce que je voulais, donc merci :P
0
KX
Messages postés
16581
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
26 juillet 2022
2 972
21 juin 2014 à 14:17
Tu peux y accéder avec new File car il est externe, s'il était dans le JAR tu devrais le considérer comme une ressource et faire de la même manière.
Remarque : en Java les fichiers de configurations existent, ce sont des fichiers .properties et il existe des mécanismes qui en facilitent l'accès : Properties
0