java手动编译工程
javac -classpath 可以指定类路径 来编译java文件依赖的其它类,比如第三方库或者java基础类,它为编译器指明了找不到导入的类时去那个路径下找!(java -classpath 表示运行时,去哪里加载依赖的类)
如果需要指定多个路径时,在linux上使用:分割,而windows中多个路径分隔符就是;比如 javac -cp classes;C:\Tomcat\lib\servlet-api.jar BeerSelect.java
这就是用classes下的类文件
和 servlet-api.jar
一起来编译 BeerSelect.java
通常配置路径时,会用.;D:/clas/;,将当前目录也加配置上
使用javac命令行如何编译一个目录下的所有.java文件?
答案是使用通配符
不过要注意javac -sourcepath src *.java不能编译,正确姿势是javac -sourcepath src src*.java!
方法一、进入源文件夹进行编译
cd src (进入src源文件夹)
javac *.java
(可以指定输出目录,javac -d ..\classes *.java)
方法二、不进入源文件夹进行编译
cd mywork (不进入src源文件夹)
javac -sourcepath src src*.java
(可以指定输出目录,javac -sourcepath src -d classes src*.java)
javac -sourcepath 指定了依赖的源代码路径,如果依赖的类在classpath中找不到,在sourcepath中能找到,就会重新将源代码编译成class文件进行依赖,如果在classpath和sourcepath都能找到,就比较class文件是不是源文件最新的,如果不一致就编译源文件进行依赖(并不打包进工程)。
javac -d 指明了编译生产的class文件放到那个目录,通常-d配置的路径会自动添加到classpath中,在编译时使用。更重要的是加了-d,编译器才能编译有package包名的类,并根据包名生成对应的路径,所以运行时就需要包名运行了(也就是全类名),不加-b,如果java文件第一行使用了包名package,就会无法编译通过。
而将上述几个命令全用上就是