我在我的java應用程序中使用了log4j 2.3。我通過maven添加了依賴關係。
當運行在Eclipse中的一切程序正常工作,但是當我與Maven打包,並嘗試運行jar我收到以下錯誤: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
也沒有工作。該計劃在日食中運行良好,所以應該沒有缺失依賴。
您可能有一個依賴性崩潰,其中一個依賴關係對log4j 1.x具有傳遞依賴性。使用'mvn dependency:tree'來找到罪魁禍首。另外,請參閱http://stackoverflow.com/questions/26338387/unexpected-exception-java-lang-noclassdeffounderror-org-apache-log4j-logmanage – Tobb
您需要在類路徑中包含log4j jar。你如何執行你的應用程序? – Amila
有沒有辦法在eclipse中執行'mvn dependency:tree'?我沒有安裝用於命令行的maven,只是在eclipse中使用它。我在我的pom.xml中添加了log4j-cire(2.3)和log4j-api(2.3)作爲依賴項。我使用'java -har myApplication.jar'在命令行中運行它。 – Pabi