Appel de "java -jar MyFile.jar" avec les options de chemin de classe étendu
Lorsque vous tentez d'exécuter un fichier JAR compilé incorporant des bibliothèques externes et face une "java.lang.ClassNotFoundException", il est crucial de comprendre les principes fondamentaux du processus d'exécution Java.
Java propose deux options pour spécifier les chemins de classe :
- -jar : inclut le JAR fichier et son chemin de classe défini par le manifeste.
- -cp : spécifie manuellement le chemin de classe complet, y compris toutes les dépendances.
Utilisation incorrecte
Tenter de combiner simultanément -jar et -cp est incorrect et entraînera l'erreur susmentionnée.
Solution
Il existe deux approches valides pour résoudre ce problème :
1. Chemin de classe défini par le manifeste :
- Créez un fichier manifeste dans le JAR en spécifiant le chemin de classe requis.
- Utilisez java -jar pour exécuter le JAR, qui chargera automatiquement le chemin de classe spécifié. dépendances.
2. Chemin de classe explicite :
- Utilisez java -cp pour définir le chemin de classe complet, y compris le JAR principal et tous les JAR externes.
- Spécifiez explicitement la classe principale sur la ligne de commande.
Par exemple :
java -cp 'MyProgram.jar:libs/*' main.Main
Remarque : La syntaxe dir/* ajoute tous les fichiers JAR du répertoire spécifié au classpath.
Conseils supplémentaires :
- Pour l'approche définie par le manifeste, utilisez l'outil tâche pour générer dynamiquement le fichier manifeste avec le chemin de classe souhaité avant de créer le JAR.
- Si l'option -jar est plus pratique, assurez-vous que toutes les dépendances sont incluses dans le manifeste du 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