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 :

package javac -d et sous répertoire


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Par défaut package javac -d et sous répertoire
    Bonjour


    voilà dans un fichier source quand j'ai une instruction du genre

    package music;

    je fais un javac - d . music/*.java pour compiler

    Mais si j'ai une instruction du genre

    package polymorphism.music;

    comment je fais pour compiler

    Merci

  2. #2
    Membre expérimenté Avatar de hydraland
    Profil pro
    Développeur Java
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Par défaut
    Salut,

    Il faut faire javac polymorphism/music/*.java.

    PS : Je ne vois pas l'intéret d'utiliser l'option -d avec .(point).
    A+
    Hydraland

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Par défaut
    c'est vrai que ça marche aussi bien sans.

    Merci

  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
    Salut,

    Citation Envoyé par exhortae Voir le message
    c'est vrai que ça marche aussi bien sans.
    C'est normal puisque c'est la valeur par défaut !

    Pour ton problème il faut définir le classpath (qui contiendra les répertoires de base contenant les fichiers *.class) et le sourcepath (qui contiendra les répertoires de base contenant les fichiers *.java).

    Par répertoire de base, je parle du répertoire qui contient le premier répertoire de l'arborescence des packages).


    Perso je te conseillerais l'arborescence de travail suivante :
    • /src qui contiendra l'arborescence de tes sources
    • /bin, qui contiendra l'arborescence de tes classes une fois compilé
    • /lib, qui contiendra tes librairies annexes (*.jar)


    Par exemple avec tes packages music et polymorphism.music, tu aurais sous le répertoire src l'arborescence suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    src/
        music/
        package/music

    Et tu compiles depuis le répertoire de base en spécifiant les paramètres classpath, sourcepath, et -d (/projet étant le répertoire qui accueillera ton projet) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    javac
     -classpath /projet/bin:/projet/lib/*
     -sourcepath /projet/src
     -d /projet/bin
     ton_fichier.java
    (j'ai mis sur plusieurs lignes seulement pour que ce soit plus lisible)

    • Le classpath permet de définir l'emplacement des class déjà compilé. Ici on spécifie le répertoire bin qui contiendra tes propres codes, et les archives du répertoire lib (attention l'étoile * ne fonctionne que sous Java 6, avec les versions précédentes il faut spécifier tous les jar un à un).
      Remarque : le séparateur de path est : sous Linux et ; sous Windows...

      Lorsque tu compiles un fichier, les classes importé sont recherché dans le bootclasspath (qui comporte les classes de l'API), puis dans le classpath si elle ne sont pas trouvé.
      Donc si tu ne spécifies pas le classpath le compilateur ne pourra pas retrouver les classes importées...
    • Le sourcepath permet d'indiquer au compilateur l'emplacement de tes sources java. Si tu importes une classe qui n'est pas trouvé dans le classpath, le compilateur la recherchera dans le sourcepath et la compilera avant de continuer la compilation de ta classe
    • Enfin l'option -d permet de placer les classes compilées sous le répertoire bin, en respectant l'arborescence des répertoires.


    A noter une petite astuce, on peut définir les options dans un fichier texte et le spécifier avec @ dans la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javac @/projet/file *.java

    Maintenant, si on veut des processus de compilation plus évolué, on peut se tourner vers Ant ou autres

    a++

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,

    ......


    a++

    Bon là je met dans les favoris internet, je débute encore (mini programmes) mais bientôt je vais réaliser mon premier projet et là ça tombe à pic.

    Merci

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/07/2009, 17h25
  2. Réponses: 5
    Dernier message: 27/05/2007, 23h20
  3. [Installation] javac non trouvé sous linux
    Par melmouj dans le forum Général Java
    Réponses: 8
    Dernier message: 14/11/2005, 13h36
  4. script qui explore les sous-répertoire ?
    Par farenheit dans le forum Flash
    Réponses: 9
    Dernier message: 20/07/2005, 12h02
  5. fichier .bat : problèmes avec des sous-répertoires
    Par aymron dans le forum Windows
    Réponses: 4
    Dernier message: 23/06/2005, 09h33

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