[Eclipse] Problème chemin de fichier image

Résolu
Evenkore Messages postés 18 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
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

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
    1. Evenkore Messages postés 18 Statut Membre
       
      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
    2. KX Messages postés 19031 Statut Modérateur 3 020
       
      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