使用javac命令行编译一个目录下的所有.java文件?

时间:2021-10-01 12:54:13

使用javac命令行如何编译一个目录下的所有.java文件?
参考这里

使用javac -sourcepath src *.java不行!使用javac -sourcepath src src*.java可以!!!

总结一下!

方法一、进入源文件夹进行编译
cd mywork
cd src (然后进入src源文件夹)
javac *.java
(可以指定输出目录,javac -d ..\classes *.java)

方法二、不进入源文件夹进行编译
cd mywork (不进入src源文件夹)
javac -sourcepath src src*.java
(可以指定输出目录,javac -sourcepath src -d classes src*.java)

说明:
1、javac可以使用-sourcepath选项指定“查找输入源文件的位置”,使用-d选项指定“存放生成的类文件的位置”。但在使用-sourcepath选项时有一点要注意,指定了-sourcepath仍然要以当前目录为起点指定待编译的源文件。(如“src*.java”,不能以-sourcepath为起点指定源文件,如“*.java”)

2、使用*.java编译时,无须自己检查包依赖关系(如在llh包中,有llh.A_package中的类文件引用了llh.B_package中的类),编译时会自动将输出目录(如src或classes目录)加入到classpath中,不用指定-classpath classes选项。

另外,使用javac *.java可以,使用javac src*.java不行,因为不指定-sourcepath选项则默认把当前目录作为源文件夹,即相当于-sourcepath .。必须使用javac -sourcepath src src*.java。