Maison > Java > javaDidacticiel > le corps du texte

Comment résoudre \'NoClassDefFoundError\' dans les dépendances Maven lors de l'exécution d'un fichier JAR ?

Susan Sarandon
Libérer: 2024-10-26 07:37:30
original
487 Les gens l'ont consulté

How to resolve

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 :

  1. Ouvrez votre fichier pom.xml.
  2. Ajoutez la dépendance du plugin :
<code class="xml"><dependency>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-shade-plugin</artifactId>
  <version>3.5.2</version>
</dependency></code>
Copier après la connexion
  1. Définissez une exécution de plugin de build :
<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>
Copier après la connexion
  1. Enregistrez le fichier pom.xml.
  2. Exécutez les commandes suivantes :
<code class="bash">mvn package
java -cp target/jar-filename.jar your.main.class</code>
Copier après la connexion

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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!