我们的目标就是把src下的项目 编译到 src 同级目录下的web-inf下,模拟编译工具
首先我们搭建一个有依赖关系的小项目:我是用eclipse生成然后copy过去的,结构如下:
代码:
package test;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public void getMsg() {
System.out.println("test is success");
}
}
package test2;
import test.Test;
public class Test2 {
public static void main(String[] args) {
Test test=new Test();
test.getMsg();
}
}
由于依赖关系,我们先编译Test1,命令如下:
-cp 是classpath的缩写,就是源文件的位置,. 代表当前目录src,你也可以写绝对路径
-d 是编译后的路径,你也可以写 .或者绝对路径
结果如下:
然后同样的方式编译Test2,
结果如下:
最后,验证下:
我也是试了好多次,发现java命令 的 -cp不能乱写,因为牵扯到包和依赖,所以要保证那些包在-cp下,最好是用 javac -d 指定的那个目录。
到此,你就该猜的出来那些eclipse或是idea工具他们的运行机制了吧,或者你可以尝试着写个自定义编译工具哦。