
Envoyé par
bogizo
Ok pour le source path mais si elle n'ont pas encore été compilée a quoi sert le classpath?
Le classpath sert à retrouver les classes qui ont déjà été compilé, ou bien les classes des APIs externes que tu utilises...
Par exemple si tu as un projet de la sorte :
1 2 3
| chemin_du_projet
/src
/bin |
Où src contient l'arborescence des sources, et bin contiendra ton code compilé.
Donc il faut utiliser les options suivantes :
-sourcepath chemin_du_projet/src -classpath chemin_du_projet/bin -d chemin_du_projet/bin
- Le sourcepath permet donc au compilateur de retrouver les autres sources s'il en a besoin. S'il n'est pas indiqué le sourcepath prendra la même valeur que le classpath.
- Le classpath permet de retrouver les classes déjà compilé. Que ce soit tes propres classes ou bien d'éventuelles librairies externes. S'il n'est pas indiqué le classpath correspondra au répertoire courant, ce qui n'est correct que dans le cas où tu n'utilises pas de package (ce qui est plutôt déconseillé).
- Enfin l'option -d permet d'indiquer où seront stocké les classes généré (en respectant l'arborescence des packages). S'il n'est pas précisé le fichier *.class sera enregistré dans le même répertorie que le fichier source.
Donc, lorsqu'on compile un fichier A.java qui référence une classe monpackage.B, le compilateur la recherchera dans l'ordre :
- Dans le classpath s'il trouve le fichier *.class correspondant, donc bin/monpackage/B.class
- Dans le sourcepath s'il trouve le fichier *.java correspondant pour le compiler, donc src/monpackage/B.java
a++
Partager