Maison  >  Article  >  Java  >  Comment exécuter un JAR avec des options de chemin de classe supplémentaires : -cp vs. -jar expliqué ?

Comment exécuter un JAR avec des options de chemin de classe supplémentaires : -cp vs. -jar expliqué ?

DDD
DDDoriginal
2024-11-05 14:38:02238parcourir

How Do I Run a JAR with Additional Classpath Options: -cp vs. -jar Explained?

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 La tâche peut être utilisée pour automatiser le processus d’ajout de dépendances externes au chemin de classe. En configurant la tâche avant de créer le JAR, les développeurs peuvent s'assurer que le fichier manifeste contient les informations de chemin de classe requises. Cela élimine le besoin de spécification explicite à l'aide de l'indicateur -cp.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn