Maison >Java >javaDidacticiel >Comment exécuter un fichier JAR avec des dépendances externes ?

Comment exécuter un fichier JAR avec des dépendances externes ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-05 18:41:101011parcourir

How to Execute a JAR File with External Dependencies?

Exécution d'un fichier JAR avec un chemin de classe externe

Problème

Compilation d'un fichier JAR avec une classe principale spécifiée et des bibliothèques dépendantes (stockées dans le "lib"), les tentatives d'exécution du fichier JAR avec le chemin de classe personnalisé échouent. Les erreurs rencontrées incluent « Impossible de trouver ou de charger la classe principale » ou « NoClassDefFoundError ».

Solution

La commande Java -jar ignore le paramètre -cp lors de la spécification d'un fichier JAR. Cela signifie que toute tentative de spécification d'un chemin de classe personnalisé à l'aide de -cp sera inefficace.

Pour exécuter le fichier JAR avec le chemin de classe externe, deux options sont disponibles :

  1. Inclure tous les fichiers Jar dans le manifeste :

    • Dans le fichier MANIFEST.MF dans le JAR, spécifiez le chemin de classe en incluant les fichiers JAR du répertoire "lib" à l'aide de chemins relatifs.
  2. Spécifiez le chemin de classe sur la ligne de commande :

    • Sur la ligne de commande, spécifiez l'option -cp avec une liste séparée par deux points de tous les fichiers JAR nécessaires, y compris votre fichier JAR et le répertoire "lib" :

      java -cp MyJar.jar:lib/* com.somepackage.subpackage.Main

Remarque : Il n'est pas possible d'inclure des fichiers JAR supplémentaires dans le JAR lui-même, car vous devrez extraire et placer les fichiers .class directement dans votre JAR.

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