Classpath (Français)


fournissant en tant qu’application argumentEdit

supposons que nous ayons un paquet appelé org.mypackage contenant les classes:

  • HelloWorld (main class)
  • SupportClass
  • UtilClass

et les fichiers définissant ce paquet sont stockés physiquement dans le répertoire D:\myprogram (sous Windows) ou /home/user/MyProgram (sous Linux).

La structure du fichier ressemble à ceci:

Lorsque nous invoquons Java, nous préciser le nom de l’application à exécuter: org.mypackage.HelloWorld., Cependant, nous devons également dire à Java où chercher les fichiers et répertoires définissant notre package.,o pour lancer le programme, nous utilisons la commande suivante:

Microsoft Windows Linux
 java -classpath D:\myprogram org.mypackage.HelloWorld
 java -cp /home/user/myprogram org.mypackage.HelloWorld 

où:

  • java est le lanceur d’exécution Java, un type d’outil SDK (un outil en ligne de commande, tel que comme javac, Javadoc ou apt)
  • -classpath D:\myprogram définit le chemin d’accès aux paquets utilisés dans le programme (sous Linux, -cp /home/user/myprogram) et
  • org.,mypackage.HelloWorld est le nom de la classe principale

le chemin d’accès dans un environnement variableEdit

La variable d’environnement nommée CLASSPATH peut être alternativement utilisés pour définir le classpath. Pour l’exemple ci-dessus, on peut aussi utiliser sur Windows:

set CLASSPATH=D:\myprogramjava org.mypackage.HelloWorld

La règle est que les -classpath option, lorsqu’elle est utilisée pour démarrer l’application java, remplace la balise CLASSPATH variable d’environnement. Si aucun n’est spécifié, le répertoire de travail actuel est utilisé comme chemin de classe., Cela signifie que lorsque notre répertoire de travail est D:\myprogram\ (sous Linux, /home/user/myprogram/), nous n’aurions pas besoin de spécifier explicitement le chemin de classe. Lors du remplacement cependant, il est conseillé d’inclure le dossier actuel "." dans le chemin de classe dans le cas où le chargement des classes à partir du dossier actuel est souhaité.

La même chose s’applique non seulement à java lanceur, mais aussi à javac, le compilateur java.

définir le chemin d’un fichier Jar fileEdit

Si un programme utilise une bibliothèque de support incluse dans un fichier jar appelé supportLib.,jar, physiquement situé dans le répertoire D:\myprogram\lib\ et la structure de fichier physique correspondante est:

D:\myprogram\ | ---> lib\ | ---> supportLib.jar | ---> org\ | --> mypackage\ | ---> HelloWorld.class ---> SupportClass.class ---> UtilClass.class

L’option de ligne de commande suivante est nécessaire:

java -classpath D:\myprogram;D:\myprogram\lib\supportLib.jar org.mypackage.HelloWorld

ou alternativement:

set CLASSPATH=D:\myprogram;D:\myprogram\lib\supportLib.jarjava org.mypackage.HelloWorld

ajout de tous les fichiers JAR dans un directoryEdit

dans Java 6 et supérieur, on peut ajouter tous les fichiers JAR dans un répertoire spécifique au chemin de classe en utilisant la notation Générique.,

Windows exemple:

java -classpath ".;c:\mylib\*" MyApp

Linux exemple:

java -classpath '.:/mylib/*' MyApp

Cela fonctionne pour les deux -classpath options et d’environnement classpath.

définir le chemin dans un fichier manifestedit

Si un programme a été enfermé dans un fichier Jar appelé helloWorld.jar, situé directement dans le répertoire D:\myprogram la structure du répertoire est comme suit:

D:\myprogram\ | ---> helloWorld.jar | ---> lib\ | ---> supportLib.jar

Le fichier manifeste défini dans helloWorld.,pot a cette définition:

Main-Class: org.mypackage.HelloWorldClass-Path: lib/supportLib.jar

Le fichier manifest doit se terminer par une nouvelle ligne ou un retour chariot.

Le programme est lancé avec la commande suivante:

java -jar D:\myprogram\helloWorld.jar 

Cette démarre automatiquement org.mypackage.HelloWorld spécifié dans la classe Main-Class avec les arguments. L’utilisateur ne peut pas remplacer ce nom de classe en utilisant l’appel java-jar . Class-Path décrit l’emplacement de supportLib.jar par rapport à l’emplacement de la bibliothèque helloWorld.pot., Ni le chemin de fichier absolu, qui est autorisé dans le paramètre -classpath sur la ligne de commande, ni les chemins internes jar ne sont pris en charge. Cela signifie que si le fichier de classe principal est contenu dans un fichier jar, org/mypackage/HelloWorld.la classe doit être un chemin valide sur la racine dans le jar.

plusieurs entrées de chemin de classe sont séparées par des espaces:

Class-Path: lib/supportLib.jar lib/supportLib2.jar

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *