Я использую log4j 2.3 в своем приложении java. Я добавил зависимость через maven.
При запуске программы в затмение все работает нормально, но когда я упаковать его с Maven и попробуйте запустить банку, я получаю следующую ошибку:log4j2 java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager
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
Почему он не в состоянии найти класс во время работы его из банки?
Добавление log4j 1.2
также не работает. Программа отлично работает в eclipse, поэтому не должно быть недостающей зависимости.
У вас, вероятно, есть сбой зависимости, при этом одна из ваших зависимостей имеет транзитивную зависимость от log4j 1.x. Используйте 'mvn dependency: tree', чтобы найти виновника. Кроме того, см. Http://stackoverflow.com/questions/26338387/unexpected-exception-java-lang-noclassdeffounderror-org-apache-log4j-logmanage – Tobb
Вам нужно иметь банку log4j в вашем пути к классу. Как вы выполняете свое приложение? – Amila
Есть ли способ сделать «mvn dependency: tree' в eclipse? Я не установил maven для использования в командной строке, просто используя его в eclipse. Я добавил log4j-cire (2.3) и log4j-api (2.3) в качестве зависимостей в моем pom.xml. Я запускаю его из командной строки с помощью 'java -har myApplication.jar' – Pabi