2010-08-18 138 views
4

我有一個使用外部jar的應用程序。我用eclipse,它工作正常。我從eclipse導出爲jar,創建了一個具有類路徑的Manifest文件:./cab.v1.jar 我將兩個jar放在同一個目錄中。 我在命令行中運行: Java的罐子myApp.jarJava執行jar,它依賴於命令行中的其他jar

,並獲得在cab.v1.jar類java.lang.NoClassDefFoundError(其他JAR) 也試過java命令。 -jar myApp.jar但沒有成功。 我在做什麼錯?

回答

6

使用documentation for the Manifest它不使用相對目錄的./。使用-jar

Class-Path: cab.v1.jar 

注意,-cp選項將被忽略:只是嘗試一下。

+0

謝謝。我試了一下,沒有工作,但後來提取jar,看到日食並沒有使用我的類路徑放在maninifest文件中。它手動和它的工作。任何想法爲什麼日食這樣做? – Cratylus 2010-08-18 07:10:39

+2

您必須使用Export - > Runnable Jar。 – 2010-08-18 08:48:50

+0

@Ravn Andersen:謝謝!隨着可運行的jar它工作! – Cratylus 2010-08-18 12:09:55

2

如果使用-jar選項,則類路徑將被忽略。您可以通過啓動應用程序

java -cp jar1.jar:jar2.jar mainclass 

類路徑分隔符':'是';'在窗戶上。

+0

試圖如你所說: java -cp cab.v1.jar -jar myApp.jar 但仍然是同樣的錯誤。請注意,這兩個罐子都在同一個目錄下 – Cratylus 2010-08-18 06:42:26

+0

@ user38706我寫道,你不能同時使用-jar和-cp。這裏有幾個選項:http://mindprod.com/jgloss/classpath.html – stacker 2010-08-18 06:53:43

+0

對不起,我的不好。無論如何,我提取jar,看到eclipse沒有使用我將類路徑放在清單文件中。它手動和它的工作。任何想法爲什麼日食這樣做? – Cratylus 2010-08-18 07:32:37