Exécuter un JAR avec une option de chemin de classe supplémentaire : comprendre le dilemme "-cp" vs "-jar"
Lors de l'exécution d'un fichier JAR , les développeurs peuvent avoir besoin d'accéder à des bibliothèques ou à des classes supplémentaires au-delà de celles incluses dans le JAR lui-même. Pour résoudre ce problème, Java propose deux options : utiliser les indicateurs de ligne de commande -cp (classpath) ou -jar.
-cp vs. -jar : un cas d'exclusion mutuelle
Il est important de noter que -cp et -jar servent à des fins distinctes et ne peuvent pas être combinés. L'indicateur -jar spécifie le fichier JAR à exécuter, tandis que -cp définit le chemin de classe utilisé pour localiser les classes et dépendances supplémentaires.
L'option -jar :
Si les dépendances requises sont encapsulées dans le fichier JAR, ou si elles peuvent être récupérées à partir du chemin de classe, l'utilisation de l'indicateur -jar seul est suffisante. La machine virtuelle Java (JVM) chargera automatiquement les classes du JAR et du chemin de classe, comme spécifié dans le fichier manifeste du JAR.
L'option -cp :
Lorsque les dépendances externes ne sont pas incluses dans le JAR ou ne peuvent pas être trouvées sur le chemin de classe, l'option -cp doit être utilisée. Il permet aux développeurs de définir explicitement le chemin de classe, y compris le JAR principal et tous les JAR ou répertoires supplémentaires nécessaires contenant des fichiers de classe. La syntaxe suivante le démontre :
java -cp 'MyProgram.jar:libs/*' main.Main
Dans cet exemple, MyProgram.jar spécifie le JAR principal, libs/* (en utilisant la syntaxe dir/*) ajoute tous les JAR du sous-répertoire libs au chemin de classe, et main.Main indique le point d'entrée (classe principale) du programme.
Alternative : modification du fichier manifeste JAR
Alternativement, le
En comprenant les différences et les cas d'utilisation de -cp et -jar, les développeurs peuvent exécuter efficacement des fichiers JAR qui nécessitent des dépendances de chemin de classe supplémentaires, garantissant ainsi une gestion transparente et sans erreurs. exécution gratuite.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!