log4j2 java.lang.NoClassDefFoundError: org/apache/enregistrement/log4j/LogManager
Je suis à l'aide de log4j 2.3 dans mon application java. J'ai ajouté de la dépendance via maven.
Lors de l'exécution du programme dans eclipse, tout fonctionne bien, mais quand je le paquet avec maven et essayez d'exécuter le pot j'obtiens l'erreur suivante:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache logging/log4j/LogManager
at main.myclass.<clinit>(myclass.java:11)
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
Pourquoi il n'est pas en mesure de trouver la classe lors de l'exécution à partir d'un bocal?
Ajoutant log4j 1.2
ne fonctionne pas non plus. Le programme est en cours d'exécution fine dans eclipse, il n'y a pas de dépendance manquante.
Vous avez probablement une dépendance crash, avec l'un de vos dépendances ayant une dépendance transitive de log4j 1.x. Utilisation
Vous avez besoin d'avoir le log4j jar dans votre chemin de classe. Comment êtes-vous de l'exécution de votre application?
Est il possible de le faire
mvn dependency:tree
de trouver le coupable. Aussi, voir stackoverflow.com/questions/26338387/...Vous avez besoin d'avoir le log4j jar dans votre chemin de classe. Comment êtes-vous de l'exécution de votre application?
Est il possible de le faire
mvn dependency:tree
dans eclipse? Je n'ai pas installé maven en ligne de commande pour utiliser, il suffit de l'utiliser dans eclipse. J'ai ajouté log4j-cire(2.3) et log4j-api(2.3) comme dependencys dans mon pom.xml. Je le lance depuis la ligne de commande avec java -har myApplication.jar
OriginalL'auteur Pabi | 2015-09-03
Vous devez vous connecter pour publier un commentaire.
Lorsque vous exécutez votre application jar à partir de la ligne de commande à votre charge jar ne sont pas disponibles au moment de l'exécution. Vous avez besoin d'inclure l'une de ces deux plugins pour pom.xml afin d'avoir votre dépendances disponibles au moment de l'exécution.
À l'aide de: maven-ombre-plugin
À l'aide de:maven-dépendance-plugin
Lorsque vous exécutez la
mvn package
il va générer uber jar /ou de copier les dépendances à outputDirectory. Je préfère maven-ombre-plugin pour générer un pot sera de toutes les dépendances.maven-shade-plugin
.content que ça vous a aidé.
J'ai exactement le même problème et maven-ombre-plugin ne fonctionne pas pour moi. Je suis à l'aide de maven-shaden-plugin et une fois qu'il crée le pot paquet j'exécute mon application avec java-jar myapp.jar et je continue de recevoir le même message d'erreur. Ce que je fais mal?
à l'aide de l'ombre-plugin dois-je modifier le contenu de la <mainClass> ? Ou est-ce une autre portée ici?
OriginalL'auteur Garry