2017-08-29 51 views
-1

, 我使用Intellij自5天以來,它看起來不錯。所以我創建了一個新的java項目,並使用log4j2,輕鬆的業務,一切正常。然後我創建了一個易於部署的工件。問題是,我無法運行/執行工件JAR文件!我得到的錯誤,taht log4j.xml文件丟失:Intellij的工件和log4j - 如何運行

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager 
     at iBox.IBox.<init>(IBox.java:64) 
     at iboxapp.Start.main(Start.java:28) 
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) 

的log4j.xml是神器(JAR文件)的一部分。 xml文件的正確位置在哪裏?我不使用Maven,Intellij 2017.2

任何想法?

THX

+0

這是一個依賴關係問題,你不使用maven你使用什麼? –

+0

我只使用IntelliJ,添加依賴關係並手動構建工件。我不知道默認情況下在後臺運行的是什麼。 – Sascha

+0

[意外的異常:java.lang.NoClassDefFoundError:org/apache/log4j/LogManager]可能的重複(https://stackoverflow.com/questions/26338387/unexpected-exception-java-lang-noclassdeffounderror-org-apache-log4j -logmanage) – Meo

回答

0

首先你應該使用的,而不是依靠IDE正確的構建系統。如果你從頭開始,我推薦gradle。

現在這是說: 錯誤不會抱怨缺少XML文件,但關於丟失的類文件。

你是如何創造神器的? 爲了測試我只是

  • 在IDEA中創建一個Java項目
  • 添加庫依賴關係的log4j的API和log4j的核心,版本2.8.2
  • 補充說,僅使用記錄單線主類log4j的
  • 加入的log4j .XML的 「SRC」 文件夾的根
  • 創建僞影:
    • 個項目設置 - >工件 - > 「+」 - >罐 - >從具有依賴性模塊
    • 選擇的主類
    • 並保持的 「從庫JAR文件」 - >提取到目標JAR」選擇
  • 建立僞影:體形 - >構建構件
  • 使用「Java的罐子測試僞影」執行工件從出/僞影/測試工件夾

作品沒有問題。

0

這個問題是舊的和新的log4j引用的混合。清理後,一切正常。 THX

相關問題