J'essaie de comprendre comment organiser les fichiers source et classe travaillant avec des paquets. J'ai trouvé un très utile tutorial. Mais j'ai encore quelques questions. Pour autant que j'ai compris, il est recommandé d'avoir un isomorphisme entre le nom des paquets et le nom des répertoires où sont stockés les éléments d'un paquet. Par exemple si j'ai un paquet nommé aaa.bbb.ccc
qui contient la classe ddd
c'est une bonne pratique d'avoir un fichier de classe appelé "ddd.class" et situé dans "$ CLASSPATH/aaa/bbb/ccc /". Ai-je bien compris?
Si c'est le cas, le compilateur Java mettra-t-il automatiquement les fichiers * .class dans le bon répertoire?
Je n'ai pas réussi à obtenir ce comportement. J'ai mis la variable $CLASSPATH
à "/home/myname/java/classes"
. J'ai exécuté javac KeyEventDemo.java
qui contient package events;
. Je m'attendais à ce que javac crée un sous-répertoire events
sous /home/myname/java/classes
et place le KeyEventDemo.class
dans ce sous-répertoire.
Cela ne s'est pas produit. J'ai essayé d'aider javac et j'ai créé le sous-répertoire "events" par moi-même. J'ai encore utilisé javac
mais il ne veut pas mettre les fichiers de classe sous "/ home/myname/java/classes/events". Qu'est-ce que je fais mal?
Et pour clarifier $ CLASSPATH: il dira à la JVM où chercher des classes pendant l'exécution, pour ne pas indiquer à javac où créer cette classe et cette expérience. –