web-dev-qa-db-fra.com

Java -ClassPath Option

Sera l'utilisation de -classpath Option avec Java, ajouter ou remplacer le contenu de la variable CLASSPATH env?

19
Zacky112

L'utilisation de la variable de classe de classe, il remplace la variable d'environnement de classe de classe, mais uniquement pour cette session. Si vous redémarrez l'application, vous devez redéfinir la variable de classe de classe.

15
giri

Oui. Cité de la page Java(1) Homme:

   -classpath classpath
   -cp classpath
          Specifies a list of directories, JAR archives, and Zip archives to search  for  class  files.   Class
          path  entries  are separated by colons (:). Specifying -classpath or -cp overrides any setting of the
          CLASSPATH environment variable.

          If -classpath and -cp are not used and CLASSPATH is not set, the user class path consists of the cur-
          rent directory (.).
7
Robert Munteanu

L'une des options est utilisée, pas les deux.

Spécification -ClassPath ou -CP remplace tout réglage de la variable d'environnement de classe de classe.

...

L'option -ClassPath est préférée car vous pouvez la définir individuellement pour chaque application sans affecter d'autres applications et sans autres applications modifiant sa valeur.

...

Réglage de la variable de CLASSPATH ou à l'aide de la ligne de commande -ClassPath Option d'option de ligne de commande indiquée par défaut, donc si vous souhaitez inclure le répertoire actuel du chemin de recherche, vous devez inclure "". dans les nouveaux paramètres.

7
miku

L'utilisation de l'option -CP n'affectera pas la variable d'environnement de classe.

Vous pouvez essayer ce petit extrait de code pour vérifier ceci:

public class CPTest {
    public static void main (final String[] args) {
        String cp = System.getenv("CLASSPATH");
        System.out.println(cp);
    }
}
%echo $CLASSPATH  
/home/test/:.

La sortie sans option -cp:

%Java CPTest  
/home/test/:.

L'option de sortie avec -cp:

%Java -cp /home/xanadu:. CPTest  
/home/test/:.

La sortie est la même pour les deux invocations (une avec -cp et une sans).

Aussi soit le chemin spécifié dans le Point de classe La variable d'environnement est
[.____] utilisé ou le chemin spécifié avec -cp l'option est utilisée. Ce n'est pas un mélange de deux c'est l'un d'entre eux.

Cela est évident de l'invocation ci-dessous. Si la CWD (répertoire de travail actuel ".")
[.____] est exclu de l'option -CP, le lanceur JVM (c'est-à-dire Java) ne peut pas trouver le
fichier de classe malgré la variable d'environnement de classe de classe contenant des CWD (".") dedans.

%Java -cp /home/test CPTest
Exception in thread "main" Java.lang.NoClassDefFoundError: CPTest
6
sateesh