[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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 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? :/
A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
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