Partage
  • Partager sur Facebook
  • Partager sur Twitter

packages dans NetBeans

Sujet résolu
    24 octobre 2010 à 22:52:54

    Bonjour à tous je débute en java (donc mon problème devrait être simple à résoudre ;) ) et j'utilise NetBeans.

    J'ai 2 fichiers Java : un Main.java contenant le code de mon application (nom de projet : MyApp, nom de la classe principale : acrostic.Main), et LibClass.java (nom de projet : MyLib) qui est ma libraire de classes.

    J'ai relié ses deux projets (avec l'option Add Projet sur MyApp) pour que mon application Main.java aille chercher les classes dans la librairie de classe Mylib.jar .

    Le problème c'est que Main.java ne reconnait pas la classe LibClass quand je l'appelle dans le code, même si je spécifie le chemin absolue ( String result = org.me.mylib.LibClass.acrostic(args); ) ou que je l'importe ( import org.me.mylib.LibClass; ).

    La seule parade que j'ai trouvé est de rajouter en haut du code de LibClass.java la ligne : "package acrostic;".

    Pourriez-vous me dire pourquoi ça ne marchait en donnant le chemin entier (org.me.mylib.LibClass.acrostic(args);) ou en important ( import org.me.mylib.LibClass; ) - au passage à quoi correspondent les termes du chemin "org", "me", car là est peut-être le problème -, mais que ça marche seulement si je mette package acrostic; dans LibClass.java ?

    PS: j'ai suivi ce tuto


    Main.java contient le code :

    package acrostic;
    
    public class Main {
    
        public static void main(String[] args) {
        String result = LibClass.acrostic(args);  // ligne qui pose problème
        System.out.println("Result = " + result);
        }
    
    }
    


    LibClass.java contient le code :

    public class LibClass {
    
        public static String acrostic(String[] args) {
            
                  *blabla du code*
        }
    }
    
    • Partager sur Facebook
    • Partager sur Twitter
      24 octobre 2010 à 23:31:38

      bonjour,
      si tu travailles sur 2 projets, le mieux c'est de créer un jar du projet "bibliothèque" (Maj+F11).
      Et ensuite "d'inclure" le jar dans le projet utilisateur (Libraries/Add jar ...).
      Ensuit tu fais un import ...
      • Partager sur Facebook
      • Partager sur Twitter
        25 octobre 2010 à 1:30:27

        Merci, ça reste anormal que les méthodes citées dans mon 1er post ne fonctionnent pas, non ?
        • Partager sur Facebook
        • Partager sur Twitter
          25 octobre 2010 à 12:21:39

          tu peux ajouter le .jar bouton droit sur le projet -> properties -> Librairies -> onglet Compile: Add jar/folder
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            25 octobre 2010 à 16:01:33

            Salut!

            org.me c'est un exemple.

            La convention de nommage en java veut que tu nommes tes packages avec ton domaine lorsque tu es une entreprise par exemple.
            Par exemple du java sur le site du zéro aurait des packages
            com.siteduzero.acrostic;

            Si tu fais un jar. Tu devrais lui donner un nom de package car pour appeler les classes c'est plus clair.

            En haut de ton fichier tu déclares:
            package mabibliotheque;
            

            ( par exemple );
            et dans ton main
            tu appelles
            package acrostic;
            
            public class Main {
            
                public static void main(String[] args) {
                String result = mabibliotheque.LibClass.acrostic(args);  
                System.out.println("Result = " + result);
                }
            
            }
            


            En espérant avoir été clair
            • Partager sur Facebook
            • Partager sur Twitter
              25 octobre 2010 à 23:10:47

              Merci beaucoup ça marche. Néanmoins pour bien comprendre, en gros le package est une classe qui en réunit plusieurs ?

              PS: le org.me est un exemple mais il semble rependu dans les forums java, "org" et "me" désigne quoi d'habitude ?
              • Partager sur Facebook
              • Partager sur Twitter
                25 octobre 2010 à 23:17:55

                un package: oui c'est un regroupement de classe.

                org.me.xxx désigne comme il a été dit ci-dessus le nom de domaine. Par exemple pour :
                - www.siteduzero.com on aura com.siteduzero.xxx
                - www.tv5.org on aura org.tv5.xxx
                - www.mysql.com on aura com.mysql.xxx

                Mais tu n'es pas obligé de faire pareil, tu peux nommer tes package comme tu veux.
                Je t'invite à lire le tuto java.
                • Partager sur Facebook
                • Partager sur Twitter
                J'ai tous les badges d'OpenClassrooms.
                  26 octobre 2010 à 0:06:33

                  Le sujet est résolu, merci beaucoup pour vos explications.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  packages dans 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