2010-09-23 91 views
1

我正在嘗試基於兩個獨立的Java包創建JAR。我可以在Eclipse中編譯和運行,但無法從命令行獲取代碼。我有Ant和JDK正確配置的使用,因爲我有一個幾乎工作的Ant構建腳本。唯一的問題是,當我試圖執行它時,生成的JAR會拋出一個ClassNotFoundException來自多個包的Ant構建jar

歸檔文件中包含的所有的.class從正確的目錄層次結構都包文件。無論如何,JAR會拋出上述異常。

想法是從包含這兩個軟件包的頂級目錄運行此腳本。

下面是我的構建腳本的相關線路:

<manifest file="MANIFEST.MF"> 
    <attribute name="Built-By" value="XBigTK13X"/> 
    <attribute name="Main-Class" value="com.main.MainClass"/> 
    <attribute name="Class-Path" value="./com/main/ ./secondpackage/shapes/" /> 
</manifest> 
<jar destfile="App.jar" 
    basedir="./bin" 
    includes="**/*.class" 
    manifest="MANIFEST.MF" 
    excludes="App.jar" 
/> 
+0

jar -tvf jarfile.name看起來如何? – Jayan 2010-09-24 04:53:17

回答

1

JAR整個過程都是正確的。被拋出這個錯誤,因爲我試圖創建一個JAR後運行使用以下命令將JAR:

java MainClass 

我現在意識到我需要使用以下命令明確目標的JAR:

java -jar MainClass.jar 
0

看在生成JAR文件,以確保這兩個包都從根本上正確的路徑。清單中的Class-Path語句可能與包含.class文件的文件夾結構不匹配。

通過使用zip util打開JAR來驗證它。

+0

它們確實位於正確的目錄結構中。 – XBigTK13X 2010-09-23 17:43:33

+1

正確加載哪個軟件包,main或secondpackage?我想知道你的類路徑的分隔符是否需要分號: 2010-09-23 18:08:06

+0

更改空間分隔符到分號不能解決問題。以下是試圖運行JAR時生成的錯誤消息: 引起:java.lang.ClassNotFoundException:MainClass.jar – XBigTK13X 2010-09-23 23:11:13