2013-03-30 87 views
0

我已經成功地寫了查找並從NetBeans中運行時使用我的log4j2.xml文件小型的Java程序。我現在正在嘗試創建一個包含我的其他jar的jar文件,以便我可以在命令行上運行它。我用Ant構建了jar文件,並在我的jar目標中使用了「Manifest」。清單/類路徑沒有成功設置目錄的CLASSPATH中log4j2.xml

構建完成後,我執行'java -jar BimbleParser.jar',找到了我放入Manifest'Class-Path'中的所有jar文件,程序運行正常。除了它不記錄每個log4j2.xml文件(到一個.log文件)。當我做一些事情,給力的錯誤,我得到一些「錯誤的記錄到命令行,相信log4j2的默認行爲,表明它一直沒有找到log4j2.xml文件。

我很積極的,沒有被作爲在清單在我的構建文件的「罐子」的目標設置CLASSPATH中發現含有log4j2.xml的目錄。

下面是與清單中的螞蟻任務是:

<target name="jar" description="Create jar file" depends="junit"> 
    <jar destfile="${project.name}.jar" duplicate="add" basedir="${classes_dir}"  filesetmanifest="skip" > 
     <manifest> 
      <attribute name="Build-Date" value="${TODAY} ${TSTAMP}"/> 
      <attribute name="Main-Class" value="com.mumble.parsers.Bumble.BumbleParser"/> 
      <attribute name="Class-Path" value="./CCom/config ./CCom/lib/CComCommons.jar ./CCom/lib/commons-configuration.jar ./CCom/lib/commons-lang.jar ./CCom/lib/log4j-api.jar ./CCom/lib/log4j-core.jar ./CCom/lib/commons-logging.jar ./CCom/lib/commons.lang3.jar"/> 
     </manifest> 
    </jar> 
</target> 

的log4j2.xml位於第一類路徑條目,如「./CCom/config」和其他所有的jar文件被發現並由我的程序使用。我究竟做錯了什麼?

也許還有爲了使log4j2.xml文件可見通過類路徑在這個「Java的罐子BimbleParser.jar」方案替代解決方案?

感謝您的幫助

+0

嘗試從您的類路徑中除去log4j2-api.jar文件,看看它的工作原理 – Satya

+0

這沒有幫助 - NoClassDefFoundError。該jar文件包含「LogManager」,或多或少都是該日誌記錄功能的「根」類。 – joe7pak

+0

嘗試使用'/ CCOM/config'而不是'/ CCOM/Config'在你的清單 –

回答