Ajouter un commentaire

fredericmazue

Quote:
tout ca alors que si j tape javac Main.java tout court ca marche aussi sans mettre de package

Bonne question :)
La réponse est que j'ai voulu t'éviter de tomber dans un problème courant. Vois tu, selon la JVM il arrive que le répertoire courant ne figure pas automatiquement dans le classpath. Et dans ce cas ta compilation, même sans package, aurait échoué.
Donc ma commande "compliquée" n'avait pour but que d'intégrer à coup sûr le répertoire courant dans le classpath et je te recommande vivement de toujours le faire pareil ;)

Quote:
mais j comprend toujours pas pourquoi les packages ne marche pas chez moi

Qu'est-ce que ça veut dire ça ?
Les packages marchent chez toi comme chez tout le monde. Le tout est de savoir les faire marcher. Ca commence par placer les fichiers compilés .class dans les bons répertoires, ce que le compilateur javac ne fait pas tout seul par miracle.

exemple:
Soient les fichiers CoursDonne.java et Main.java dans un répertoire quelconque
le fichier CoursDonne.java contient:
package monpackage;
- tu compiles CoursDonne.java,
- ensuite tu dois *toi même* placer CoursDonne.class dans un sous-repertoire de nom monpackage:

mkdir monpackage
mv CoursDonne.class ./monpackage/CoursDonne.class

ensuite tu compiles Main. Comme dedans il y a:

import monpackage.CoursDonne;

le compilateur va chercher monpackage/CoursDonne dans tous les répertoires pointés par le classpath. Tu comprends maintenant pourquoi je tenais tant à ce que le répertoire courant y figure ;)
Si tu as bien fait la manip que je t'ai décrit, alors Main.Java compilera :)

C'est toujours comme ça que ça fonctionne même si des IDE comme Netbeans ou Eclipse l'escamotent, car ils font toutes ces manips pour toi, automatiquement.

Capito ?

Quote:
bien sur que j utitlise linux

Laisse tomber Java pour un vrai langage comme C, C++, Erlang, Haskell, Lisp ou Python et tu seras sur la bonne voie ;)

Quel Linux au fait ?

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
  GGG   RRRR   L     W     W  EEEE 
G R R L W W E
G GG RRRR L W W W EEE
G G R R L W W W E
GGG R RR LLLL W W EEEE