2010-07-15 11 views
0

Ma structure ressemble à ceComment puis-je compiler ma classe Java en fonction d'une autre classe et d'une bibliothèque?

\Project1 
    \src 
    \pkg1 
     Main.java 
    \pkg2 
     Auxillary.java 
    \Destination 
    \class 
    \lib 

je dois compiler Main.java qui a des dépendances dans Auxillary.java et pots dans \ lib dans \ Destination \ classe

Je suis dans le répertoire Projet1.

J'ai essayé

javac -cp Destination\lib\*;src\pkg2\* -d Destination\class 

Cependant, je reçois un package not found pour Auxillary.java.

Qu'est-ce que je fais mal?

Répondre

2

Une entrée de chemin de classe ne peut pas faire référence à un répertoire source . Essayez ceci:

javac -Djava.ext.dirs=Destination\lib -d Destination\class 
     src\pkg1\Main.java src\pkg2\Auxiliary.java 

dire compilez tous le code source en une seule fois. Autre possibilité:

javac -Djava.ext.dirs=Destination\lib -d Destination\class 
     src\pkg2\Auxiliary.java 

javac -Djava.ext.dirs=Destination\lib -cp Destination\class 
     -d Destination\class src\pkg1\Main.java 

Ce compilera Auxiliary.java d'abord, puis utiliser le répertoire de destination dans le cadre de la classpath lors de la compilation Main.java.

+0

Huh. * Une entrée classpath ne peut pas faire référence à un répertoire source. * - De préférence, '-sourcepath' est utilisé pour cela, mais si ce n'est pas le cas, le classpath marche très bien pour trouver les fichiers source. Je suppose que dans ce cas, le problème est que kunjan a indiqué le répertoire du paquet au lieu du répertoire racine (c'est-à-dire 'src'). Et bien sûr, le '*' est également faux là-bas. '-cp Destination \ lib \ *; src' devrait fonctionner correctement, cependant. –

0

Vous pouvez utiliser le script ant pour simplifier ces étapes. Essayez une fois!