IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

chargement image dans un JAR retournant des NullPointerException


Sujet :

avec Java

  1. #1
    Membre actif Avatar de Balbuzard
    Profil pro
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Points : 263
    Points
    263
    Par défaut chargement image dans un JAR retournant des NullPointerException
    Bonjour,

    J'ai créé une JFrame comportant une image; Lorsque j'exécute le code avec Eclipse, pas de soucis, mais lorsque je chercher à créer mon Jar, tout se passe correctement à part l'image qui n'est pas affichée. Il me met en gros que l'adresse de l'image n'est pas valide.

    Ce problème semble assez récurrent, puisque j'ai trouvé sur google d'autres personnes l'ayant déjà rencontré, mais j'ai l'impression qu'aucunes des solutions ne s'applique à mon cas.

    Voici mon code (j'utilise TableLayout)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ImageIcon icon=new ImageIcon("images/img.JPG");
    		JLabel labelImage=new JLabel(icon);
    		container.add(labelImage, "1, 1, 3, 3");
    Qui ne fonctionne pas avec le JAR

    J'ai aussi essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    URL url_image=Client.class.getResource("images/img.JPG");
    		System.out.println(url_image);
    		JLabel labelImage=new JLabel(new ImageIcon(url_image));
    		container.add(labelImage, "1, 1, 3, 3");
     
    		container.add(new Picture("img.JPG"), "1, 1, 3, 3");
    qui ne fonctionne pas davantage

    Quelqu'un pourrait-il m'aider?

    Merci vivement :-)
    ZORRO
    Plus Vengeur que Masqué

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    C'est tout à fait normal que le premier code ne fonctionne pas, car ImageIcon attend un nom de fichier "standard" qui sera accédé via l'OS. Or une fois compressé il ne s'agit pas d'un fichier "standard" pour l'OS qui ne peut donc pas le trouver...


    La seconde solution recherche non pas des fichiers sur le disque, mais des ressources dans la CLASSPATH. Cela peut être des fichiers standards ou des fichiers compressé dans des Zip/Jar.

    Il te faut donc spécifier le bon chemin, selon l'emplacement où tu mettras tes fichiers. Ici il recherche le fichier "images/img.JPG", ce qui correspond à un chemin relatif par rapport au répertoire représentant le package de ta classe Client...


    Perso je te conseillerais de faire un package "resources" avec des sous-packages pour organiser tes données, et une classe "Resources" qui permettra de faciliter l'accès aux données...

    a++

    PS : Attention également aux différences de cases, qui si elles sont ignorés par Windows, sont pris en compte une fois dans le Jar...

  3. #3
    Membre actif Avatar de g0up1l
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 341
    Points : 294
    Points
    294
    Par défaut
    De plus, mettre des chemins "en dur" dans ton application n'est pas vraiment recommandé...Pense au fichier de configuration, souvent au format XML, qui te permet de changer à loisir l'image que tu veux afficher, sans recompiler toon projet...
    Hope it helps !
    Nouveau ! Il y a une vie après le java, oxygénez-vous

  4. #4
    Membre actif Avatar de Balbuzard
    Profil pro
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Points : 263
    Points
    263
    Par défaut
    OK, vos réponses résolvent mon problème parfaitement;

    J'arrive à afficher mes images dans mon JAR sans soucis maintenant, en les mettant dans un package 'ressources';

    Ton idée m'intéresse, g0up1l, je pense l'adapter pour permettre même à l'utilisateur de changer lui-même son image :-)

    Merci beaucoup à vous deux, je commençais un peu à désespérer.

    a+
    ZORRO
    Plus Vengeur que Masqué

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Maintien des icônes et images dans un .jar
    Par BenkessiratAmina dans le forum Général Java
    Réponses: 18
    Dernier message: 13/01/2015, 18h56
  2. Chargement images dans formulaire
    Par Jean-Luc80 dans le forum IHM
    Réponses: 3
    Dernier message: 01/12/2007, 06h35
  3. Images dans un jar exécutable..
    Par wariom dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 11/06/2006, 16h52
  4. [DEBUTANT] Image dans un .jar
    Par flzox dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 16/02/2006, 16h37
  5. [JAR] Recherche d'1 image dans un JAR différent
    Par tomburn dans le forum Général Java
    Réponses: 5
    Dernier message: 26/04/2005, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo