2016-03-04 106 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