2016-09-06 149 views
1

我構建了一個jar文件,其中包含使用其他jar文件作爲依賴項的代碼,但我無法運行它(我一直在收到NoClassDefFoundError)。如何將依賴關係jar文件包含到jar文件中

我可以在網上找到的所有其他類似問題都用maven作爲解決方案,我想避免這樣做。當我運行像這樣我的代碼:

#!/bin/bash 
java -cp "src/.:src/jsoup-1.9.2.jar:src/commons-cli-1.3.1.jar" WikipediaWords [email protected] 

它運行良好,但是當我嘗試:

java -cp "src/.:src/jsoup-1.9.2.jar:src/commons-cli-1.3.1.jar" -jar WikipediaWords.jar [email protected] 

它抱怨。

雖然我編譯了我的jar文件,但裏面還有所有的依賴關係,所以我真的不知道爲什麼找不到任何東西。理想情況下,我甚至不希望將-cp路徑添加到我的java執行中,並且只知道jar文件使用嵌套的jar依賴文件。

如果您有任何關於如何解決這個問題(運行沒有類def錯誤的jar文件)而不使用Maven,請告訴我!

在此先感謝!

P.S.我的建築規範可能是有用的:

#!/bin/bash 
javac -cp "src/.:src/jsoup-1.9.2.jar:src/commons-cli-1.3.1.jar" src/WikipediaWords.java 
jar cfm src/WikipediaWords.jar src/Manifest.txt -C src/ . 

回答

1

嘗試運行下面的命令:

java -cp "src/.:src/jsoup-1.9.2.jar:src/commons-cli-1.3.1.jar:WikipediaWords.jar" WikipediaWords [email protected] 

OR

java -cp "WikipediaWords.jar:src/.:src/jsoup-1.9.2.jar:src/commons-cli-1.3.1.jar" WikipediaWords [email protected] 
+0

非常感謝,這個作品! –

+0

如果我能以某種方式獲取WikipediaWords.jar中jar文件的副本,您是否有任何線索? –

+0

@Ofek:這個答案解決了你的問題嗎? –

相關問題