web-dev-qa-db-fra.com

Définir le dossier pour classpath

À partir de la ligne de commande, comment définir l'option Java CLASSPATH pour qu'elle pointe vers un ou plusieurs répertoires contenant plusieurs fichiers jar? Existe-t-il des caractères génériques pour la prise en charge des répertoires et sous-répertoires récursifs?

(Mes fichiers JAR sont triés dans plusieurs sous-répertoires.)

44
Sam

Si vous utilisez Java 6 ou supérieur, vous pouvez utiliser des caractères génériques de cette forme:

Java -classpath ".;c:\mylibs\*;c:\extlibs\*" MyApp

Si vous souhaitez ajouter tous les sous-répertoires: lib\a \, lib\b \, lib\c \, il n’existe aucun mécanisme pour cela, sauf:

Java -classpath ".;c:\lib\a\*;c:\lib\b\*;c:\lib\c\*" MyApp

Il n'y a rien comme lib\*\* ou lib\** joker pour le type de travail que vous voulez faire.

62
msi

Utilisez la commande comme

Java -classpath ".;C:\MyLibs\a\*;D:\MyLibs\b\*" <your-class-name>

La commande ci-dessus définira les chemins mentionnés sur classpath une seule fois pour exécuter la classe nommée TestClass.

Si vous voulez exécuter plus d'une classe, alors vous pouvez suivre ceci

set classpath=".;C:\MyLibs\a\*;D:\MyLibs\b\*"

Après cela, vous pouvez exécuter autant de classes que vous le souhaitez en tapant simplement

Java <your-class-name>

La commande ci-dessus fonctionnera jusqu'à ce que vous fermiez l'invite de commande. Mais après avoir fermé l'invite de commande, si vous rouvrez l'invite de commande et essayez d'exécuter certaines classes, vous devez définir à nouveau le chemin de classe à l'aide de l'une des deux méthodes mentionnées ci-dessus. (Première méthode pour exécuter une classe et deuxième un pour exécuter plus de classes)

Si vous voulez définir la classe une seule fois pour qu'elle puisse fonctionner à tout moment, procédez comme suit

1. Right click on "My Computer" icon
2. Go to the "properties"
3. Go to the "Advanced System Settings" or "Advance Settings"
4. Go to the "Environment Variable"
5. Create a new variable at the user variable by giving the information as below
    a.  Variable Name-     classpath
    b.  Variable Value-    .;C:\program files\jdk 1.6.0\bin;C:\MyLibs\a\';C:\MyLibs\b\*
6.Apply this and you are done.

Rappelez-vous que cela fonctionnera à chaque fois. Vous n'avez pas besoin de définir explicitement le chemin d'accès aux classes encore et encore.

REMARQUE: Si vous souhaitez ajouter d'autres bibliothèques après un jour, n'oubliez pas d'ajouter un point-virgule à la fin de la "valeur de variable" de la "variable d'environnement", puis de taper le chemin d'accès à vos nouvelles bibliothèques. après le point-virgule. Parce que le point-virgule sépare les chemins de différents répertoires.

J'espère que ceci vous aidera.

6
Chandra Sekhar