Maison > Java > javaDidacticiel > Comment exécuter un fichier JAR avec des dépendances supplémentaires : -jar vs -cp ?

Comment exécuter un fichier JAR avec des dépendances supplémentaires : -jar vs -cp ?

Mary-Kate Olsen
Libérer: 2024-11-08 03:04:02
original
1057 Les gens l'ont consulté

How to Execute a JAR File with Additional Dependencies: -jar vs. -cp?

Appelez "java -jar MyFile.jar" avec l'option de chemin de classe supplémentaire

En Java, il existe deux façons d'exécuter un fichier JAR : en utilisant l'option -jar ou en spécifiant le chemin de classe avec -cp. Cependant, tenter de combiner les deux options entraîne une erreur.

Lors de l'utilisation de -jar, la machine virtuelle Java (JVM) suppose que le fichier JAR contient toutes les dépendances nécessaires. Par conséquent, il n'est pas recommandé de spécifier un chemin de classe supplémentaire avec -cp.

Au lieu de cela, il existe deux approches alternatives :

Approche 1 : ajouter des JAR au manifeste principal

  1. Copiez les fichiers JAR requis dans un sous-dossier, tel que "libs".
  2. Utilisez le chemin tâche dans Ant avant de construire le JAR :
<code class="xml"><manifestclasspath property="myprogram.manifest.classpath" jarfile="MyProgram.jar">
  <classpath>
    <fileset dir="libs" includes="*.jar" />
  </classpath>
</manifestclasspath></code>
Copier après la connexion
  1. Créez le JAR avec le manifeste mis à jour :
<code class="xml"><jar destfile="MyProgram.jar" basedir="classes">
  <manifest>
    <attribute name="Main-Class" value="main.Main" />
    <attribute name="Class-Path" value="${myprogram.manifest.classpath}" />
  </manifest>
</jar></code>
Copier après la connexion

En spécifiant le chemin de classe dans le manifeste , java -jar MyProgram.jar inclura toutes les dépendances.

Approche 2 : Spécifiez le chemin de classe avec -cp

  1. Incluez tous les fichiers JAR requis dans le chemin de classe :
java -cp 'MyProgram.jar:libs/*' main.Main
Copier après la connexion

L'utilisation de la syntaxe * se développe pour inclure tous les fichiers JAR dans le répertoire "libs".

N'oubliez pas qu'il est crucial de choisir l'approche -jar ou -cp. La combinaison des deux peut entraîner des conflits et des erreurs de chemin de classe.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal