2010-04-26 61 views
2

我做了一個自定義ant腳本,每次構建時都會自動創建一個jar文件。Eclipse Ant Builder問題

這是它的樣子:

<?xml version="1.0" encoding="UTF-8"?> 

<project name="TestProj" basedir="." default="jar"> 
    <property name="dist" value="dist" /> 
    <property name="build" value="bin/test/testproj" /> 
    <target name="jar"> 
     <jar destfile="${dist}/TestProj.jar"> 
      <manifest> 
       <attribute name="Main-Class" value="test.testproj.TestProj" /> 
      </manifest> 
      <fileset dir="${build}" /> 
     </jar> 
    </target> 
</project> 

我加入它通過右鍵單擊我的項目>屬性>製造商>點擊新> Ant構建>那麼我指定的上述xml文件的位置。

然而,當我做運行它:

java -jar TestProj.jar 

我得到一個NoClassDefFoundError的測試/ testproj/TestProj

我在Ubuntu使用Eclipse。 TestProj是類的名稱,它在包test.testproj

我敢肯定有清單的錯誤,可能還有xml文件的位置,但我不知道如何解決這個問題。有任何想法嗎?

回答

2

你有沒有試着用:

<property name="build" value="bin" /> <!-- instead of bin/test/testproj --> 
    <target name="jar"> 
     <jar destfile="${dist}/TestProj.jar"> 
      <manifest> 
       <attribute name="Main-Class" value="test.testproj.TestProj" /> 
      </manifest> 
      <fileset dir="${build}" /> 
     </jar> 
    </target> 

只是爲了看它是否解決了問題?

Ant Task提到:

這個任務形成一個隱含的文件集,並支持<fileset>大多數屬性(dir成爲BASEDIR

這意味着你正在嘗試JAR中的任何類根bin/test/testproj(所以TestProj得到包括),而不是參考根bin內的所有類(其將包括test.testproj.TestProj

+0

噢,謝謝,修復它。 – 2010-04-26 18:52:22