Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ressource image => compilateur NetBeans

Sujet résolu
    30 juin 2009 à 11:58:13

    Bonjour,

    Je n'arrive pas à intégrer des images .jpg dans mon executable .jar quand je le compile avec NetBeans.

    Mes jpg sont dans un dossier res que j'ai créé et copié à la racine du projet.

    J'ai fait ensuite clique droit sur "Libraries" et "Add JAR/Folder".
    J'ai sélectionner le dossier res et je vois que les 2 jpg sont à l'intérieur.

    Citation

    init:
    deps-jar:
    compile:
    C:\Documents and Settings\claude\Mes documents\NetBeansProjects\DraftSurvey\res is a directory or can't be read. Not copying the libraries.
    Not copying the libraries.
    To run this application from the command line without Ant, try:
    java -jar "C:\Documents and Settings\claude\Mes documents\NetBeansProjects\DraftSurvey\dist\DraftSurvey.jar"
    jar:
    BUILD SUCCESSFUL (total time: 0 seconds)

    • Partager sur Facebook
    • Partager sur Twitter
      1 juillet 2009 à 1:06:55

      Si tu veux l'integrer dans ton executable jar avec netbeans, je te conseille de creer plutot un package netbeans que tu nomme res, et a l'intérieur de ce dossier tu mets tes images.
      Tu les appelera dans ton programme avec getResource().
      • Partager sur Facebook
      • Partager sur Twitter
      J'ai tous les badges d'OpenClassrooms.
        1 juillet 2009 à 9:06:26

        Je ne connais pas cette méthode, est-ce que tu peux détaillé chaque étape?

        Sur le poste précédent, c'est pour un fichier texte mais je ne comprend pas comment mettre en place la récupération de mon image?

        Mais ensuite comment cela se passe-t-il avec le .jar?
        Il doit toujours récupérer cette image? Ou elle est définitivement inclu dans le .jar?
        • Partager sur Facebook
        • Partager sur Twitter
          2 juillet 2009 à 9:34:30

          Comment faite vous quand vous avez une image dans un formulaire et que vous voulez que lors de la compilation, cette image soit intégrée définitivement dans le .jar pour que celui n'ai pas à la chercher à chaque exécution?

          Je pense que là c'est peut être un peu plus clair.
          • Partager sur Facebook
          • Partager sur Twitter
            2 juillet 2009 à 10:05:44

            En gros voici ton arborescence:

            src
            ---com
            ------img1.jpg
            ------img2.jpg
            ------pack1
            ------dev
            ---------test.java

            Et dans ton fichier d'appel tu utilisera la méthode getClass().getResource("/com/img1") pour recuperere l'url de l'image qui sera stockée dans le jar.

            A la création de ton .jar si tu le fait avec netbeans il inclura automatiquement l'image dans le jar.
            • Partager sur Facebook
            • Partager sur Twitter
            J'ai tous les badges d'OpenClassrooms.
              2 juillet 2009 à 10:13:54

              Voilà mon arboressence:

              Image utilisateur

              A la racine j'ai un fichier build.xml, le manifest.mf et mes images que j'avais misent là pour le moment.

              Je dois donc les mettre où?
              Dans DraftSurvey/src/draftsurvey , j'ai juste le fichiers .java

              • Partager sur Facebook
              • Partager sur Twitter
                2 juillet 2009 à 10:28:27

                Mets les images dans le dossier src/draftsurvey/ et relance le build avec netbeasn
                • Partager sur Facebook
                • Partager sur Twitter
                J'ai tous les badges d'OpenClassrooms.
                  2 juillet 2009 à 10:35:46

                  Voilà ce que je met comme ligne de code :

                  Citation

                  ImageIcon logo2 = new ImageIcon();
                  logo2.getClass().getResource("/draftsurvey/AtlaMarOPEX.jpg") ;
                  JLabel logoLabel = new JLabel(logo2);
                  logoLabel.setBounds(170, 10, 240, 30);



                  Mais avec ça, j'ai pu lancer mon application et la compiler sans message d'erreur mais l'image n'apparait ni en lancant depuis NetBeans ni depuis le .jar.

                  Mais image sont maintenant pourtant dans DraftSurvey/src/draftsurvey

                  • Partager sur Facebook
                  • Partager sur Twitter
                    2 juillet 2009 à 11:13:21

                    appelle là comme ceci:
                    ImageIcon logo2=new javax.swing.ImageIcon(getClass().getResource("/draftsurvey/AtlaMarOPEX.jpg"));
                    JLabel logoLabel = new JLabel(logo2);
                    logoLabel.setBounds(170, 10, 240, 30);
                    
                    • Partager sur Facebook
                    • Partager sur Twitter
                    J'ai tous les badges d'OpenClassrooms.
                      2 juillet 2009 à 11:25:20

                      Quand je lance depuis NetBeans, j'ai ça comme message maintenant:

                      Citation

                      run:
                      Exception in thread "main" java.lang.NullPointerException
                      at javax.swing.ImageIcon.<init>(ImageIcon.java:167)
                      at draftsurveyatlamaropex.Fenetre.<init>(Fenetre.java:87)
                      at draftsurveyatlamaropex.Main.main(Main.java:7)
                      Java Result: 1
                      BUILD SUCCESSFUL (total time: 6 seconds)

                      • Partager sur Facebook
                      • Partager sur Twitter
                        2 juillet 2009 à 11:32:56

                        essaye avec getClass().getClassLoader().getResource(..)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          2 juillet 2009 à 11:35:02

                          Ca donc :

                          Citation

                          ImageIcon logo2 = new ImageIcon();
                          logo2.getClass().getClassLoader().getResource("/draftsurvey/AtlaMarOPEX.jpg");
                          JLabel logoLabel = new JLabel(logo2);
                          logoLabel.setBounds(170, 10, 240, 30);



                          Voilà ce que j'ai comme message avec NetBeans :

                          Citation

                          run:
                          Exception in thread "main" java.lang.NullPointerException
                          at draftsurveyatlamaropex.Fenetre.<init>(Fenetre.java:88)
                          at draftsurveyatlamaropex.Main.main(Main.java:7)
                          Java Result: 1
                          BUILD SUCCESSFUL (total time: 7 seconds)



                          Pas tout à fait pareil que le précédent.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            2 juillet 2009 à 11:44:32

                            visiblement il ne trouve pas l'image , as -tu mis les images dans le dossier src/draftsurvey/ avant d'executer le code que je t'es passé ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                            J'ai tous les badges d'OpenClassrooms.
                              2 juillet 2009 à 11:45:32

                              essaye de séparer la création et la gestion de l'url
                              Url url = this.getClass().getClassLoader().getResource(...)
                              JLabel logoLabel = new JLabel(new ImageIcon(url);
                              • Partager sur Facebook
                              • Partager sur Twitter
                                2 juillet 2009 à 11:54:54

                                Oui l'image est bien dans le dossier avant.

                                NetBeans n'apprécie pas le mot Url car il le souligne en rouge et me dit "cannot find symbol..."

                                Citation

                                Url url = this.getClass().getClassLoader().getResource("/draftsurvey/AtlaMarOPEX.jpg");
                                JLabel logoLabel = new JLabel(new ImageIcon(url));
                                ("/draftsurvey/AtlaMarOPEX.jpg");
                                logoLabel.setBounds(170, 10, 240, 30);

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  2 juillet 2009 à 12:00:54

                                  Je ne pense pas qu'en séprarant l'URL tu ais un resultat puisque la valeur de l'url sera de null
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  J'ai tous les badges d'OpenClassrooms.
                                    2 juillet 2009 à 12:48:17

                                    ouais je suis d'accord que le fichier d'image n'est pas trouvé mais des fois par bidouillage on dégage des solutions
                                    je pense que le pas d'après est d'afficher le chemin du dossier dans lequel tu te trouve pour être sûr d'aller au bon endroit

                                    Si il ne connait pas Url , importe le bon package java.net.url
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      2 juillet 2009 à 19:52:19

                                      Je viens d'avoir le meme problème que toi, mais mon problème était que mon fichier s'appelait "image.JPG" mais moi j'appelait "image.jpg", vérifie aussi que tu n'a pas de problème de majuscule chez toi
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      J'ai tous les badges d'OpenClassrooms.
                                        3 juillet 2009 à 10:00:00

                                        Quand je regarde dans mon dossier avec l'explorateur windows, il y a écrit .JPEG donc je dois marquer ça?

                                        Citation

                                        ImageIcon logo2 = new ImageIcon();
                                        logo2.getClass().getClassLoader().getResource("/draftsurvey/AtlaMarOPEX.JPEG");
                                        JLabel logoLabel = new JLabel(logo2);
                                        logoLabel.setBounds(170, 10, 240, 30);

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          3 juillet 2009 à 10:16:21

                                          ....Bah oui si tu met pas le nom exact du fichier il peut pas le trouver !!!!

                                          Petite illustration (les noms sont choisis au hasard, toute ressemblance avec des personnes existantes ou ayant existées est une coïncidence)

                                          BOB: donne moi les carottes
                                          CARL : bah ya pas de carottes
                                          BOB : si la je les vois sur la table les trucs oranges
                                          CARL : ...ce sont des oranges pas des carottes !! >_<
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            3 juillet 2009 à 10:22:39

                                            Pourtant quand je met :

                                            Citation

                                            ImageIcon logo2 = new ImageIcon();
                                            logo2.getClass().getClassLoader().getResource("/draftsurvey/AtlaMarOPEX.jpg");
                                            JLabel logoLabel = new JLabel(logo2);
                                            logoLabel.setBounds(170, 10, 240, 30);



                                            Sous NetBeans, les images apparaissent. C'est normal ça?
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              3 juillet 2009 à 10:24:09

                                              Je l'ai compris hier moi aussi, netbeans avant de charger les ressurces remets tous les chemins en minuscules, or quand tu mets dans le jar c'est pas le cas.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              J'ai tous les badges d'OpenClassrooms.
                                                3 juillet 2009 à 10:55:49

                                                Ce qui doit éviter de nombreux problèmes du genre :D
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  3 juillet 2009 à 11:13:38

                                                  J'ai ça:

                                                  Citation

                                                  ImageIcon logo2 = new ImageIcon();
                                                  logo2.getClass().getClassLoader().getResource("/draftsurvey/AtlaMarOPEX.JPEG");
                                                  JLabel logoLabel = new JLabel(logo2);
                                                  logoLabel.setBounds(170, 10, 240, 30);



                                                  Mais message d'erreur au lancement

                                                  run:
                                                  Exception in thread "main" java.lang.NullPointerException
                                                  at draftsurveyatlamaropex.Fenetre.<init>(Fenetre.java:87)
                                                  at draftsurveyatlamaropex.Main.main(Main.java:7)
                                                  Java Result: 1
                                                  BUILD SUCCESSFUL (total time: 2 seconds)
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    3 juillet 2009 à 11:16:50

                                                    Bah il la trouve toujours pas alors, essaie d'afficher le chemin dans lequel se trouve le jar. Je sais que ya une méthode pratique pour ça mais jla connais pas de tête
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      3 juillet 2009 à 11:21:02

                                                      le .jar est donc le dossier "dist" qui se trouve à la racine du projet.
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        3 juillet 2009 à 11:24:04

                                                        ....Non non non je me suis mal fait comprendre: si tu a sle bon nom de fichier, manifestement le programme ne vas pas chercher au bon endroit le fichier..c'est le chemin réel dans lequel il se trouve que tu dois afficher (a mon avis c'est pas celui que l'on veut)
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          3 juillet 2009 à 11:28:21

                                                          Déjà j'aimerais savoir si mes images doivent être obligatoirement placé dans le dossier "src"?

                                                          Image utilisateur

                                                          Si je fais un autre dossier "res" avec mes images à l'intérieur, ça ne peux pas fonctionner?
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            3 juillet 2009 à 11:31:50

                                                            Si tu fais un dossier res, ça marche aussi a condition que tu respecte la spécification du repertoire c'est a dire /draftsurvey/res/xxx.jpg

                                                            HS: c'est quoi cet OS ?
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                            J'ai tous les badges d'OpenClassrooms.
                                                              3 juillet 2009 à 11:35:36

                                                              Deja entre le code fourni et le chemin affiché ya des différences ... o_O
                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              Ressource image => compilateur NetBeans

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown