export CLASSPATH=.;../somejar.jar;../mysql-connector-Java-5.1.6-bin.jar
Java -Xmx500m folder.subfolder../dit1/some.xml
cd ..
est la déclaration ci-dessus pour définir le chemin de classe sur le chemin de classe déjà existant dans linux est correcte ou non
Je n'aime pas définir CLASSPATH. CLASSPATH est une variable globale et en tant que telle, elle est mauvaise:
Par conséquent, la méthode préférée consiste à définir le chemin de classe pour chaque exécution du jvm, par exemple:
Java -Xmx500m -cp ".:../somejar.jar:../mysql-connector-Java-5.1.6-bin.jar" "folder.subfolder../dit1/some.xml
S'il devient long, la procédure standard consiste à l'envelopper dans un script bash ou batch pour enregistrer la saisie.
Il est toujours conseillé de ne jamais détruire de manière destructive un chemin de classe existant, sauf si vous avez une bonne raison.
La ligne suivante conserve le chemin de classe existant et y ajoute.
export CLASSPATH="$CLASSPATH:foo.jar:../bar.jar"
La différence importante entre la définition de Classpath dans Windows et Linux est le séparateur de chemin qui est ";" (point-virgule) sous Windows et ":" (deux-points) sous Linux. Aussi %PATH%
est utilisé pour représenter la valeur de la variable de chemin existante dans Windows tandis que ${PATH}
est utilisé dans le même but sous Linux (dans le shell bash). Voici la façon de configurer le chemin de classe sous Linux:
export CLASSPATH=${CLASSPATH}:/new/path
mais en tant que tel, Classpath est très délicat et vous pouvez vous demander pourquoi votre programme ne fonctionne pas même après avoir défini le Classpath correct. A noter:
-cp
les options remplacent la variable d'environnement CLASSPATH
.-cp
et CLASSPATH
variable d'environnement.Référence: Comment fonctionne Classpath en Java .
Les chemins sous linux sont séparés par des deux-points (:
), pas les points-virgules (;
), comme le théâtre l'a correctement utilisé dans son exemple. Je crois que Java respecte cette convention.
Alternativement à ce que et Andy a suggéré , vous pouvez utiliser le formulaire suivant (qui définit CLASSPATH pour la durée de la commande):
CLASSPATH=".:../somejar.jar:../mysql-connector-Java-5.1.6-bin.jar" Java -Xmx500m ...
celui qui vous convient le mieux.