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

Langage Java Discussion :

Absence des images .jar


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Java disponible
    Inscrit en
    Janvier 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java disponible
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Absence des images .jar
    Bonjour,

    Je me permets de laisser à nouveau ma trace sur ce forum car je fais face à une incompréhension certaine et vérifiée...^^

    Je dispose d'un projet Java avec interface graphique où les boutons disposent d’icônes pour définir son action.

    Lors de l'utilisation via l'IDE (NetBeans), les icônes s'affichent correctement au bon endroit.

    Cependant, dès que je compile et que je tente d'utiliser le .jar, les icônes disparaissent sans aucune raison car la structure ne semble pas modifier.

    Je vous laisse un screen-shot de mon arborescence.

    Nom : arbo-projet.png
Affichages : 204
Taille : 9,7 Ko

    Afin d'optimiser l'utilisation j'ai crée un objet qui dispose de la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public void iconeBouton(JButton bouton, String adresse)
    {
    	try
    	{
    		Image img = ImageIO.read(getClass().getResourceAsStream(adresse));
    		bouton.setIcon(new ImageIcon(img));
    	}
    	catch (Exception ex)
    	{
    		System.out.println(ex);
    	}
    }
    Avec un appel d'adresse comme tel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private final String iconeAdresseQuitter = "icones/iconeQuitter.png";
    Mais malgré cela rien ne s'affiche.

    Si vous avez des pistes, je suis tout à vous !!!!! XD

  2. #2
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Essaye d'ajouter un "/" devant le lien de ta ressource.

    Et il faut bien vérifier que le fichier n'est pas exclu lors de la génération du jar (ne connaissant pas Netbeans, je ne connais pas trop sa politique de build)
    Je ne répondrai à aucune question technique en privé

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Java disponible
    Inscrit en
    Janvier 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java disponible
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par millie Voir le message
    Essaye d'ajouter un "/" devant le lien de ta ressource.

    Et il faut bien vérifier que le fichier n'est pas exclu lors de la génération du jar (ne connaissant pas Netbeans, je ne connais pas trop sa politique de build)
    Mes différents tests m'ont fait enlever le "/" mais cela ne change rien.
    Je n'ai pas l'impression qu'on puisse modifier le build du .jar avec Netbeans...

    Merci de ta réponse ;-)

  4. #4
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    T'as dézippé le jar pour vérifier que c'était bien dedans ?
    Je ne répondrai à aucune question technique en privé

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur Java disponible
    Inscrit en
    Janvier 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java disponible
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par millie Voir le message
    T'as dézippé le jar pour vérifier que c'était bien dedans ?
    Si je dézippe le .jar, j'ai bien toute mon arborescence et tout mes fichiers dans le package "icones"...

    La je sèche et je n'ai rien trouvé sur les forums.

    Mis à part une recopie du projet sous Eclipse et une définition du build du projet, je ne vois pas d'autres solutions.

  6. #6
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    J'ai une théorie... Mais c'est assez théorique.

    La casse du fichier n'importe pas dans un workspace mais elle importe au sein du jar. Et on pourrait supposer une erreur de casse.
    Je ne répondrai à aucune question technique en privé

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur Java disponible
    Inscrit en
    Janvier 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java disponible
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par millie Voir le message
    J'ai une théorie... Mais c'est assez théorique.

    La casse du fichier n'importe pas dans un workspace mais elle importe au sein du jar. Et on pourrait supposer une erreur de casse.
    Nom : respect-casse.png
Affichages : 186
Taille : 34,0 Ko

    Il ne me semble pas...mais après j'ai l'habitude de manipuler mes fichiers donc je ne vois peut être pas l'erreur.

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Les chemins devraient commencer par slash en effet, parce que le dossier icones n'est pas dans le dossier de la classe d'invocation (au passage la convention pour les noms de packages, c'est tout en minuscule).

    Si tu exécutes ton jar en console, vois-tu un message d'erreur s'affiché et, le cas échéant, lequel ? (au passage, plutôt que System.out.println(ex);, ex.printStackTrace(); te donnera potentiellement plus d'informations).

    Ce que tu peux faire aussi, c'est créer un dossier de ressources, à part de ton dossier de source et l'ajouter comme dossier de sources (menu properties, sous menu sources...), ce sera un peu plus clean.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Développeur Java disponible
    Inscrit en
    Janvier 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java disponible
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Les chemins devraient commencer par slash en effet, parce que le dossier icones n'est pas dans le dossier de la classe d'invocation (au passage la convention pour les noms de packages, c'est tout en minuscule).

    Si tu exécutes ton jar en console, vois-tu un message d'erreur s'affiché et, le cas échéant, lequel ? (au passage, plutôt que System.out.println(ex);, ex.printStackTrace(); te donnera potentiellement plus d'informations).

    Ce que tu peux faire aussi, c'est créer un dossier de ressources, à part de ton dossier de source et l'ajouter comme dossier de sources (menu properties, sous menu sources...), ce sera un peu plus clean.
    J'ai pris note de la convention de nommage des packages et je t'en remercie.
    J'ai rajouté "/" au début de l'adresse permettant d'accéder au fichier image et j'obtiens donc ce résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private final String iconeAdresseValider = "/icones/iconeValider.png";
    J'ai lancé le .jar via une commande DOS et j'obtiens une erreur de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    java.lang.IllegalArgumentException: input == null!
            at javax.imageio.ImageIO.read(Unknown Source)
            at Extension.IconesPerso.iconeBouton(IconesPerso.java:34)
    Le problème n'est donc pas réglé.

    La ligne 34 défini dans l'erreur étant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image img = ImageIO.read(getClass().getResourceAsStream(adresse));
    Je ne vois pas ce qui est mal définit.

    Pour l'histoire des ressources, je pensais bien faire en intégrant les icônes aux "sources" tout en séparant dans un package à part.

    J'en prends note également et te remercie pour ces conseils même si pour être honnete, je ne sais pas comment faire pour mettre en dehors de mon dossier "src".
    Je vais donc plancher la dessus> ;-)

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Développeur Java disponible
    Inscrit en
    Janvier 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java disponible
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Je vous remercie pour toutes vos réponses, j'ai finalement trouvé mon erreur qui était une ridicule mais faute de frappe MAJEURE !

    Je reste à ton écoute joel.drigo pour cette histoire de ressources à part du dossier "src" qui est pour moi de la sorcellerie, je dois l'avouer. XD

    Encore merci pour toute l'aide et les précisions connexes apportées.

    A bientôt j'espère bien que j'espère ne pas avoir besoin de vous dans le futur (sans vouloir vous vexer ^^).

  11. #11
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par salocinski Voir le message
    Je reste à ton écoute joel.drigo pour cette histoire de ressources à part du dossier "src" qui est pour moi de la sorcellerie, je dois l'avouer. XD
    Je te l'ai dit : menu properties, sous menu sources...
    tu sélectionnes ton projet, bouton de droite de la souris pour faire apparaître le menu contextuel,
    sélection du menu properties (le dernier tout en bas)
    là une fenêtre s'ouvre, avec à gauche une liste appelée Categories : tu sélectionnes la catégorie "sources" (la première qu'on voit tout en haut)
    à droite s'affiche la liste des dossiers avec normalement le dossier qui contient tes packages.
    A gauche de cette liste, il y a un bouton "Add folder". tu cliques dessus. Un formulaire de sélection de dossiers s'ouvre : tu crées ton dossier (tu l'appelles par exemple resources, ou images, ou comme tu veux), bouton ok et c'est fini, tu as un dossier qui apparaît dans ton projet au même niveau que le dossier "sources" et tu peux y placer tes icônes et toutes autres ressources (sons, fichiers de config, bundles d'internationalisation, etc).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Développeur Java disponible
    Inscrit en
    Janvier 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Java disponible
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Je te l'ai dit : menu properties, sous menu sources...
    tu sélectionnes ton projet, bouton de droite de la souris pour faire apparaître le menu contextuel,
    sélection du menu properties (le dernier tout en bas)
    là une fenêtre s'ouvre, avec à gauche une liste appelée Categories : tu sélectionnes la catégorie "sources" (la première qu'on voit tout en haut)
    à droite s'affiche la liste des dossiers avec normalement le dossier qui contient tes packages.
    A gauche de cette liste, il y a un bouton "Add folder". tu cliques dessus. Un formulaire de sélection de dossiers s'ouvre : tu crées ton dossier (tu l'appelles par exemple resources, ou images, ou comme tu veux), bouton ok et c'est fini, tu as un dossier qui apparaît dans ton projet au même niveau que le dossier "sources" et tu peux y placer tes icônes et toutes autres ressources (sons, fichiers de config, bundles d'internationalisation, etc).
    Ah oui d'accord ok c'est aussi simple que ça...^^

    J'en prends note et encore merci ;-)

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

Discussions similaires

  1. Distribuer un .jar pour un projet qui a des image
    Par pigpen dans le forum Interfaces Graphiques en Java
    Réponses: 7
    Dernier message: 16/07/2007, 13h44
  2. Ouvrir des images contenu dans le jar
    Par Seb33300 dans le forum Applets
    Réponses: 1
    Dernier message: 24/05/2007, 12h10
  3. [JAR] Utiliser des images d'un .JAR
    Par Zoroastre dans le forum Général Java
    Réponses: 9
    Dernier message: 19/01/2006, 00h36
  4. [JAR] Utiliser des images
    Par Seiya dans le forum Général Java
    Réponses: 2
    Dernier message: 26/08/2005, 17h59
  5. [JAR] créer une archive .jar contenant des images.
    Par keny dans le forum Général Java
    Réponses: 2
    Dernier message: 14/03/2005, 13h17

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