Maison >Java >javaDidacticiel >Comment résoudre \'NoClassDefFoundError\' dans les dépendances Maven lors de l'exécution d'un fichier JAR ?
Résolution de NoClassDefFoundError dans les dépendances Maven
Maven est un outil d'automatisation de build populaire qui peut télécharger et gérer automatiquement les dépendances des projets Java. Cependant, vous pouvez parfois rencontrer une NoClassDefFoundError lors de l'exécution de votre fichier JAR créé par Maven sur la ligne de commande.
Cette erreur se produit généralement car Maven ne regroupe pas les dépendances dans le JAR qu'il crée par défaut. Sans les dépendances sur le chemin de classe, la machine virtuelle Java (JVM) ne peut pas trouver les fichiers de classe de bibliothèque lors de l'exécution de votre code.
Pour résoudre ce problème, vous pouvez spécifier manuellement les bibliothèques sur le chemin de classe à l'aide de - paramètre cp. Cependant, cette approche peut être fastidieuse.
Une solution plus efficace consiste à utiliser le plugin maven-shade-plugin pour ombrer le code de la bibliothèque dans votre fichier JAR de sortie. Ce plugin crée automatiquement un "uber-JAR" qui contient à la fois vos classes et les classes de la bibliothèque.
Pour ajouter le plugin maven-shade-plugin à votre fichier POM, suivez ces étapes :
<code class="xml"><dependency> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.5.2</version> </dependency></code>
<code class="xml"><plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.5.2</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin></code>
<code class="bash">mvn package java -cp target/jar-filename.jar your.main.class</code>
En ombrant les dépendances, vous créez un JAR exécutable qui inclut tous les éléments nécessaires bibliothèques. Cela résout le NoClassDefFoundError et vous permet d'exécuter votre application de manière indépendante.
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!