Salut,
Tu dois conserver une arborescence identique à celle des packages.
Perso je te conseillerais de bien séparer le code source du bytecode, par exemple en deux sous-répertoires :
- /mon/projet/src contiendrait l'arborescence du code source, où chaque classe est situé dans une arborescence correspondant au package. Ainsi la classe Test.java est situé dans /mon/projet/src/graphes/ puisqu'elle appartient au package graphes.
- /mon/projet/obj contiendra le bytecode (les *.class), dans une arborescence similaire.
Lorsque tu compiles tu dois préciser 3 points :
- Le classpath, où seront recherché les classes déjà compilé et/ou les librairies externes.
- Le sourcepath, où seront recherché le code source des classes qui n'ont pas encore été compilés.
- Le répertoire de destination, où sera placé les fichiers *.class généré...
Ce qui donnerait (depuis /mon/projet/) :
javac -classpath obj -sourcepath src -d obj
Que tu fais suivre par le nom de tes fichiers *.java :
javac -classpath obj -sourcepath src -d obj src/*.java src/graphes/*.java
A noter que tu peux utiliser un fichier pour sauvegarder ces paramètres :
1 2 3
| -classpath obj
-sourcepath src
-d obj |
javac @argsfile src/graphes/*.java
Enfin pour l'exécution il faut indiquer le classpath et le nom COMPLET de la classe :
java -classpath obj graphes.Test
a++
PS : Ou alors on peut utiliser Ant
Partager