Maison >Java >javaDidacticiel >Comment exécuter un fichier JAR avec des options de chemin de classe supplémentaires ?

Comment exécuter un fichier JAR avec des options de chemin de classe supplémentaires ?

DDD
DDDoriginal
2024-11-03 22:22:021082parcourir

How to Execute a JAR File with Additional Classpath Options?

Appel de "java -jar MyFile.jar" avec une option de chemin de classe supplémentaire

Lors de l'exécution d'un fichier JAR avec la commande "java -jar MyFile.jar", c'est essentiel pour comprendre les exigences du chemin de classe. L'option "-jar" signifie que le fichier JAR contient la classe principale à exécuter, tandis que "-cp" est utilisé pour spécifier un chemin de classe supplémentaire.

Dans le scénario donné, l'erreur rencontrée est probablement due à la combinaison des options "-jar" et "-cp". Comme l'explique la réponse, ces options s'excluent mutuellement. L'utilisation simultanée des deux options génère une commande ambiguë que Java ne peut pas interpréter.

Pour résoudre le problème, l'utilisateur dispose de deux options :

  • Option 1 : Utiliser l'attribut Manifest-Class-Path :

    Dans cette approche, le manifeste du fichier JAR inclut l'attribut "Class-Path", qui spécifie les JAR requis sur le chemin de classe. Cela élimine le besoin de l'option "-cp".

  • Option 2 : Spécifiez le chemin de classe complet avec "-cp" :

    Pour cette option, la commande serait "java -cp 'MyProgram.jar:libs/*' main.Main". Ici, le "-cp" spécifie le chemin de classe complet, y compris le JAR principal et ses dépendances, tandis que la dénomination explicite de la classe "main.Main" garantit qu'elle s'exécute comme point d'entrée.

Alternativement, Ant peut être exploité. Pour "l'approche manifeste", le "" La tâche ajoute des dépendances au manifeste avant de créer le JAR.

D'autre part, pour "l'approche classpath", le chemin de classe complet est spécifié à l'aide de l'option "-cp" en conjonction avec le fichier JAR et une dénomination explicite. de la classe principale. Cette méthode convient si l'environnement cible ne reconnaît pas l'attribut "Class-Path" du manifeste.

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