2016-03-04 76 views
0

我現在使用這個沒有任何jar文件,它工作正常並編譯所有java文件。如何使用批處理文件編譯java文件時包含jar文件

"C:\Program Files\Java\jdk1.7.0_21\bin\javac" org/redfire/screen/*.java -deprecation -classpath . pause

我想知道如何jar文件包括到這一點,因爲一些文件需要servlet-api.jar。我試圖

" -cp servlet-api.jar C:\Program Files\Java\jdk1.7.0_21\bin\javac" org/redfire/screen/*.java -deprecation -classpath . pause,但我在cmd中得到

The filename, directory name or volume label syntax is incorrect.

+1

爲什麼要在命令本身之前放置'-cp'命令行參數? –

+0

@JonSkeet我認爲應該這樣做,因爲在cmd中編譯我們輸入javac -cp jarname.jar javafile.java – Abhi

+0

是的,那麼爲什麼要在* -cp之後放置javac *? –

回答

1

你可以試試這個:

"C:\Program Files\Java\jdk1.7.0_21\bin\javac" -deprecation -cp .;servlet-api.jar -d . org\redfire\screen\*.java

注意:Assusing你在當前目錄下,並從正在執行此命令/批處理文件中org\redfire\screen目錄下的所有java文件從當前位置有servlet-api.jar

一種更好的方式在批處理文件寫的是:

set JAVA_COMPILER="C:\Program Files\Java\jdk1.7.0_21\bin\javac" 
set CLASSPATH=.;servlet-api.jar 

%JAVA_COMPILER% -deprecation -cp %CLASSPATH% -d . org\redfire\screen\*.java 
pause 
+0

'set CLASSPATH'的點是什麼? – Abhi

+0

'.'將當前工作目錄包含到類路徑中 – Mahendra

相關問題