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 :

annotation et package


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut annotation et package
    bonsoir,
    j'ai deux classe plop et plip.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    package pack;
     
    public class plop{ 
        public static void main (String[]args){what();}
        @plip(value="test")
        public static void what(){
            System.out.println("salut les gens :)");
        }
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    package pack; 
    import java.lang.annotation.Documented;
    import java.lang.annotation.Retention;
    import static java.lang.annotation.RetentionPolicy.SOURCE;
    @Documented
    @Retention(SOURCE)
    public @interface plip {
        String value(); 
    }
    Quand j'enlève la ligne "package pack;" de chaque fichier tout fonctionne correctement. Quand je la garde, j'ai cette erreur à la compilation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    plop.java:9: cannot find symbol
    symbol  : class plip
    location: class pack.plop
            @plip(value="eh ben t'es moche")
    je comprends pas puisqu'il trouve le fichier quand je lui indique pas que je suis dans un package. Ca ne doit donc pas etre un problème d'annotation.

    Cordialement
    trax

  2. #2
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    Comment (et avec quoi) tu compiles ?
    Quel est ton arborescence de travail ?


    a++

  3. #3
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    je compile avec Sun JDK 1.5.0.10

    mes deux fichiers son dans le même dossier "pack" puisqu'ils sont dans le meme package.

  4. #4
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par trax44
    je compile avec Sun JDK 1.5.0.10
    Tu compiles à la main donc ? Comment ???

    a++

  5. #5
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    Oui à la main.
    Mais je vois pas la différence entre utiliser un IDE ou le faire en ligne de commande.

  6. #6
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par trax44
    Mais je vois pas la différence entre utiliser un IDE ou le faire en ligne de commande.
    Parce que l'EDI s'occupe de bien paramétrer le compilateur... ce que tu n'as pas fait...

    En l'occurrence il te manque le ClassPath et le SourcePath.

    Ces deux éléments sont nécessaire au compilateur afin de rechercher les classes dans le bon emplacement. Lorsque le compilateur trouve un lien vers une autre classe, il recherche d'abord le fichier *.class dans le ClassPath afin de vérifier la cohérence (type, appels de méthodes, etc.).

    S'il ne la trouve pas dans le ClassPath, il recherche le fichier *.java correspondant dans le SourcePath afin de le compiler pour pouvoir poursuivre...


    Par défaut le ClassPath pointe sur le répertoire courant (et donc cela fonctionne parfaitement lorsqu'on compile une classe qui n'appartient pas à un package), et le SourcePath est identique au ClassPath.


    Donc tu dois préciser le ClassPath afin que le compilateur retrouve les bons fichiers *.java et *.class :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javac -classpath <ton_répertoire_de_base> plop.java
    a++

    PS : Les noms de classes prennent une Majusucle

  7. #7
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    euh normalement si mes dossiers de pakage sont dans le même dossier que mes sources je n'ai pas besoin de modifier mon ClassPath (j'ai vérifier ça fonctionne).

    j'ai un dossier test contenant :
    -test.class
    -dossier pack
    pack :

    -plop.class
    -plip.class

    test.class fait appel a une fonction static dans plop.class sans que j'ai besoin de modifier mon ClassPath.

    mais le problème se situe entre plop.class et plip.class
    sans la ligne
    je peux "executer" plop.class mais test.class n'a plus accés aux fonction de plop.class

Discussions similaires

  1. Ajouter un package de classe annotées
    Par khayyam90 dans le forum Hibernate
    Réponses: 3
    Dernier message: 24/04/2011, 00h18
  2. Annotion et package
    Par gocin dans le forum Langage
    Réponses: 1
    Dernier message: 11/06/2007, 09h45
  3. Package devC++
    Par Fl0r3nt dans le forum Dev-C++
    Réponses: 15
    Dernier message: 29/10/2003, 14h42
  4. [Packages] Problème d'organisation
    Par lolo... dans le forum JBuilder
    Réponses: 5
    Dernier message: 22/04/2003, 13h05
  5. Vue Packages
    Par ced dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 01/04/2003, 08h32

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