95 votes

Utilisation d'un caractère de remplacement pour le classpath ?

Bonjour à tous, J'ai utilisé tellement de bibliothèques tierces (fichiers jar) que mon CLASSPATH est complètement désordonné car je dois inclure le chemin pour chaque fichier jar que j'utilise. Je me demandais s'il y avait un moyen d'inclure tous les fichiers jar dans un dossier en utilisant l'opérateur joker (*) (comme *.jar). Mais cela ne semble pas fonctionner. Existe-t-il un autre moyen de raccourcir le CLASSPATH qui ressemble actuellement à un essai ;) sur mon PC ? Toute suggestion serait très appréciée. Merci.

95voto

Itay Maman Points 15470

De : http://java.sun.com/javase/6/docs/technotes/tools/Windows/classpath.html

Les entrées du chemin de la classe peuvent contenir le caractère générique du nom de base. * qui est considéré comme équivalent à la spécification d'une liste de tous les fichiers du répertoire portant l'extension .jar ou .JAR. Par exemple, l'entrée du chemin de la classe foo/* spécifie tous les fichiers JAR dans le répertoire nommé foo. Une entrée classpath consistant simplement en * se développe en une liste de tous les fichiers jar dans le répertoire actuel.

Cela devrait fonctionner avec Java6, mais pas avec Java5.

23voto

Chris Milburn Points 187

Cela fonctionne sous Windows :

java -cp "lib/*" %MAINCLASS%

%MAINCLASS% est bien sûr la classe contenant votre méthode principale.

Alternativement :

java -cp "lib/*" -jar %MAINJAR%

%MAINJAR% est le fichier jar à lancer via son manifeste interne.

6voto

Stephen C Points 255558

Les caractères génériques des noms de base ont été introduits dans Java 6 ; par exemple, "foo/*" désigne tous les fichiers ".jar" du répertoire "foo".

Dans les versions antérieures de Java qui ne prennent pas en charge les classpaths avec caractères génériques, j'ai eu recours à un wrapper shell script pour assembler un Classpath en "globant" un motif et en modifiant les résultats pour insérer des caractères ':' aux endroits appropriés. Il serait difficile de faire cela dans un fichier BAT...

4voto

paulbullard Points 217

Wow. J'ai trouvé la solution à http://java.sun.com/javase/6/docs/technotes/tools/Windows/classpath.html en googlant. Je suis bête. :p Je suppose que j'aurais dû chercher ça d'abord.

1voto

Pourquoi ne pas mettre de l'ordre en déplaçant les fichiers jar OBLIGATOIRES dans un seul dossier et en définissant le classpath vers ce dossier ? ;)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X