Définir le classpath en Java

Mohammad Irfan 30 janvier 2023
  1. Comment définir le classpath en Java ?
  2. Définition du classpath en Java
  3. Définition du classpath à l’aide de variables d’environnement
  4. Définition de classpath à partir de la ligne de commande
  5. Définition du classpath à l’aide de l’option -classpath
  6. Affichage du classpath
  7. Sommaire
Définir le classpath en Java

Ce didacticiel présente la procédure pour définir le classpath en Java et répertorie quelques exemples de codes pour comprendre le sujet.

Comment définir le classpath en Java ?

Nous importerons souvent des classes externes ou définies par l’utilisateur pour les rendre disponibles pour une utilisation dans notre classe actuelle. L’instruction import est utilisée pour cela en Java.

import org.projects.DemoClass;
DemoClass dc = new DemoClass();

Il serait impossible pour la JVM de parcourir tous les répertoires de notre système et de trouver la classe appropriée. JVM utilise le classpath pour localiser les classes et les fichiers jar requis. Dans ce tutoriel, nous allons apprendre à définir le classpath en Java.

Définition du classpath en Java

  • Nous pouvons définir le classpath comme variable d’environnement. Ou nous pouvons utiliser la ligne de commande pour le faire.
  • Avant de commencer, nous devons savoir que la valeur par défaut du classpath est le répertoire courant. Il est défini à l’aide d’un point (.). Changer le classpath modifiera cette valeur par défaut. Si vous avez des classes ou des jars présents dans le répertoire actuel, incluez le répertoire actuel dans le classpath.
  • Nous pouvons spécifier plusieurs chemins de classes en utilisant des séparateurs. Si vous utilisez le système d’exploitation Windows, le séparateur est un point-virgule (;). Si vous êtes sur des systèmes basés sur Linux/Unix, les deux points (:) sont utilisés comme séparateur.

Le code ci-dessous le démontre. Nous essayons d’inclure toutes les classes du répertoire actuel (en utilisant le point) et deux fichiers JAR.

.;C:\javaProjects\someJAR.jar;C:\javaOldProjects\someOldJAR.jar //For Windows
.:/javaProjects/someJAR.jar:/javaOldProjects/someOldJAR.jar   //For Linux/Unix
  • Les chemins de classe peuvent contenir le chemin d’accès aux fichiers jar et le chemin d’accès au paquet supérieur de nos classes. Par exemple, si le chemin du fichier DemoClass.class est C:\javaProjects\org\projects\DemoClass.class, nous pouvons définir le classpath sur C:\javaProjects et utiliser l’instruction d’importation suivante.
import org.projects.DemoClass;

Définition du classpath à l’aide de variables d’environnement

C’est une bonne idée d’ajouter un classpath à la variable d’environnement si nous avons un emplacement fixe qui contiendra toujours les fichiers jar requis et les fichiers de classe. Nous devons trouver les variables d’environnement du système et ajouter la variable CLASSPATH si elle est absente. Ensuite, nous allons ajouter tous les chemins des jars et des classes.

Sur un système Windows,

  1. Cliquez sur l’icône Ordinateur et ouvrez les propriétés dans le coin supérieur gauche.
  2. Cliquez sur Propriétés système avancées > Avancé > Variables d’environnement.
  3. Recherchez la variable CLASSPATH et ajoutez-y les chemins. Si la variable CLASSPATH est absente, nous devons d’abord ajouter la variable.

Définition de classpath à partir de la ligne de commande

Nous pouvons utiliser la commande set CLASSPATH dans Windows pour définir le classpath. Nous devons séparer les différents chemins en utilisant le point-virgule dans Windows. Dans l’exemple ci-dessous, nous ajoutons le répertoire actuel et un fichier JAR au classpath.

$ set CLASSPATH=.;C:\javaProjects\someJAR.jar

Sous Linux/Unix, nous pouvons utiliser la commande export CLASSPATH pour définir le classpath. Utilisez les deux points comme séparateur pour plusieurs chemins.

$ export CLASSPATH=.:/javaProjects/someJAR.jar

Définition du classpath à l’aide de l’option -classpath

Nous pouvons utiliser l’option -classpath ou -cp pour définir le classpath lors de la compilation et de l’exécution des fichiers de classe. Le code ci-dessous le démontre.

$ javac -classpath .;C:\javaProjects\someJAR.jar SomeClass.java
$ java -classpath .;C:\javaProjects\someJAR.jar SomeClass

Affichage du classpath

Nous pouvons vérifier si notre classpath a été défini avec succès ou non en utilisant les commandes suivantes.

Pour les fenêtres:

echo %CLASSPATH%

Pour les systèmes basés sur Linux/Unix :

echo $CLASSPATH

Sommaire

Le classpath est l’emplacement où la JVM recherchera les classes, les fichiers JAR et d’autres ressources. La définition du classpath correct garantit le bon fonctionnement de notre application Java. Si le classpath n’est pas défini correctement, nous pouvons obtenir ClassNotFoundException ou NoClassDefFoundError. Nous pouvons soit définir les variables d’environnement, soit utiliser la ligne de commande pour définir le classpath. Il n’est pas recommandé de définir des variables d’environnement globales pour classpath. Il est recommandé d’utiliser l’option -cp ou -classpath de la ligne de commande pour spécifier le classpath. Il s’assurera qu’aucune configuration globale n’est modifiée.

Article connexe - Java Class