2014-07-01 150 views
2

我有一個簡單的單文件java程序,它依賴於一個靜態jar。 java代碼和jar駐留在同一個目錄中。對於這種一次性解決方案,我不想引入螞蟻或maven的重量,只是想直接編譯它。java命令行編譯

在我的dev的框,下面的編譯和運行我的代碼罰款:

javac -cp ".;dependency.jar" File.java 
java -cp ".;dependency.jar" File 

然而,在我的測試中,該java命令失敗,我得到下面的輸出:

Error: Could not find or load main class File 

如果我更改我的類路徑參數爲-cp "."我得到以下輸出:

Exception in thread "main" java.lang.ClassNotFoundException: dependency 

我的開發盒是64位Windows/Cygwin和Java版本1.7.0_55。我的測試盒是64位Linux和Java版本1.7.0_45

我的測試盒出了什麼問題?

回答

6

Linux(和Unix上)的類路徑分隔符字符與Windows上的不同。它在Windows上爲;,但在Linux(和Unix)上爲:

試試這個在Linux上:

javac -cp ".:dependency.jar" File.java 
java -cp ".:dependency.jar" File 
+0

這工作,謝謝! – Josh