Je sais que export CLASSPATH=/usr/local/java/tools.jar:$CLASSPATH
cela ajoutera tools.jar au CLASSPATH, mais je veux définir le dossier sur le CLASSPATH
comme ça
export CLASSPATH=/usr/local/java/lib/:$CLASSPATH
mais ça ne marche pas.
la source
Je sais que export CLASSPATH=/usr/local/java/tools.jar:$CLASSPATH
cela ajoutera tools.jar au CLASSPATH, mais je veux définir le dossier sur le CLASSPATH
comme ça
export CLASSPATH=/usr/local/java/lib/:$CLASSPATH
mais ça ne marche pas.
Tout d'abord, en général, la définition de la variable env CLASSPATH
provoque généralement plus de problèmes qu'elle n'en résout - car toutes les applications ne veulent pas / n'ont pas besoin du même chemin de classe, et se cassent souvent lorsque des pots indésirables ou même inutiles sont inclus dans le chemin de classe. Une application java ne doit inclure que le nombre minimum de pots requis, ni plus, ni moins.
Lorsque vous avez spécifiques, des applications individuelles qui exigent que le classpath soit défini, généralement l'option de ligne de commande est préférée: java -cp path1:path2:...
. Les icônes du bureau peuvent voir leur commande modifiée pour inclure ces options, ou les scripts shell peuvent être modifiés pour inclure ces options.
Cela étant dit (et comme il y a toujours des exceptions à la règle), selon la version de java (cela nécessite java 6 ou une version ultérieure), vous pouvez spécifier qu'un répertoire entier de jars soit ajouté au chemin de classe en ajoutant un " *
" à la fin d'un répertoire; par exemple, les éléments suivants:
/dir1/foo.jar:/dir2/dir3:/dir5/dir6/*:etc...
Veux dire:
/dir1/foo.jar
- (le pot unique) sera ajouté au chemin de classe;/dir2/dir3
- toutes les classes non bloquées dans ce répertoire seront ajoutées au chemin de classe (doivent être dans la structure de package appropriée; par exemple, com.my.Foo.class
doivent être dans /dir2/dir3/com/my/Foo.class
)/dir5/dir6/*
- tous les fichiers jar de ce répertoire (ie /dir5/dir6/*.jar
) seront ajoutés au chemin de classe. Notez que ce " *
" n'est pas un caractère générique (vous ne pouvez pas utiliser f*.jar
ou même *.jar
); c'est un caractère spécial indiquant "ajouter tous les pots"En général, si vous devez ajouter un répertoire entier de fichiers JAR au chemin de classe de l'application, l'application n'a pas été correctement groupée. Au contraire, l'application devrait avoir un manifeste contenant la liste des pots dont elle dépend. Ou à tout le moins, un seul pot doit être ajouté à votre chemin de classe, et ce pot peut avoir dans son manifeste toute la liste des pots dans un sous-répertoire.
si vous voulez définir le chemin de classe de façon permanente, alors 1) découvrez où java est installé .. vous pouvez utiliser "whereis java" openjdk-7/6 est dans / usr / lib / jvm / .....
2) nous devons configurer CLASSPATH dans / etc / environment
3) ajoutez les likes suivants .. (NE LAISSEZ AUCUN ESPACE PENDANT LE TAPISAGE) (personnaliser en fonction de votre version java et de votre installation) (ce chemin d'accueil est pour open jdk 7)
répertoire séparé par ":"
la source
terminal ouvert et type
ajoutez toutes les exportations dont vous avez besoin comme ...
enfin redémarrer le terminal pour que les modifications prennent effet
la source