2015-05-04 25 views
0

如何從命令行運行帶有幾個引用庫的.jar文件的Java程序? 我已將所有.jars放在/ lib文件夾中,該文件夾位於我的項目的根文件夾中,並將這些.jar添加到構建路徑。 所以我的項目現在看起來是這樣的:帶有引用庫的Java程序:NoClassDefFound

項目:

-->/src/Entry.java, ... (all them .java files) 

-->/bin/Entry.class, ... (all them other .class files) 

-->/lib/commons-codec-1.10./(all them .jars)* 

現在,當我嘗試從CMD運行程序: 我找到自己的/ bin文件夾中,然後執行Java入口 ,但我得到NoClassDefFound例外

我該如何運行?

+0

http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html – Julian

回答

1

您需要告訴JVM在運行程序時在哪裏尋找類。 我們用來告訴被稱爲類路徑JVM參數

有不同的方式來實現這一

  1. Recomended添加類路徑位置運行命令,或者通過罐子位置,假設你在lib文件夾下有兩個jar文件a.jar和b.jar,命令應該是java -cp".;lib/a.jar;lib/b.jar" Entry
  2. 將jar文件放到一個已經在classpath下的位置(因爲當前文件夾總是在classpath下,所以最簡單選擇離子是將該罐放在當前文件夾下,但這不是一個推薦的方式來實現)
  3. 修改環境屬性下的classpath變量以列出包含jar的文件夾,這是實現此目的的一個簡單方法。
+1

1)哇,'-cp'是否使用逗號?我雖然它應該是在* nix冒號,Windows上的分號? 2)另一種方法是添加一個具有'Class-Path'和'Main-Class'屬性的清單 - 然後'java -jar'就可以實現這個功能。 –

+0

感謝您的強調,我錯誤地鍵入道歉 –

+1

兩個建議,使答案更好;參考可執行文件夾,並引用使用通配符的可能性。 http://stackoverflow.com/questions/1237093/how-to-use-a-wildcard-in-the-classpath-to-add-multiple-jars – Gimby

1

創建一個批處理文件(.bat)並將其保存在其中。每當你想運行,然後直接運行該批處理文件。我想它非常簡單和高效。

實施例: 關閉@echo

SET PATH =%PATH%; E:\爪哇\ jdk1.6.0_45 \ BIN // JDK路徑

SET LIB =%CD%\ lib中

組CP = 「」 組CP =%CP%;%LIB%\ ANTLR-2.7.6

組CP =%CP%;%LIB%\公地編解碼器-1.8.jar

設置CP =%CP%;%LIB%\ opencsv-2.3.jar

的javac -classpath%CP%*的.java

的java -classpath%CP%-Xms256m -Xmx1024m -Xss2m T2DPreProcessing

暫停

我希望這會幫助你。謝謝。

相關問題