java多文件编译
假设现在有3个文件,test.java,test2.java,test3.java。其中test.java包含了main方法,test2和test3各实现了一个在屏幕上打印的方法。我想把test2和test3放在一个名为my_pack的包中便于管理,然后在test中引入这个包再调用函数。3个文件的代码如下:
//test.java
import my_pack.*;
public class test {
public static void main(String[] args) {
test2.print();
test3.print();
}
}
//test2.java
package my_pack;
public class test2 {
public static void print() {
System.out.println("hello world");
}
}
//test3.java
package my_pack;
public class test3 {
public static void print() {
System.out.println("hi world");
}
}
由于test2.java和test3.java在同一个包my_pack中,因此创建一个名为my_pack的文件夹,将test2和test3放入其中。然后再创建一个名为source的文件夹用于存放源代码,将test.java和my_pack文件夹放入source文件夹中。组织如下图:
win + R再输入cmd回车打开终端,cd到source文件夹所在的目录下,使用如下命令进行编译:
javac -sourcepath source -d bin source/*.java
这个命令意思是,把source文件夹中的所有的java文件编译,并把生成的.class字节码文件存放在bin文件夹中(会自动创建这个bin文件夹,不用提前创建)。同时会根据包声明在bin文件中创建相对应的文件夹,执行该命令后生成的bin文件夹如下:
然后要运行我们的程序,只需要cd到bin文件夹,然后执行java test命令即可。
这样编译的话代码的存放结构比较清晰,还是挺类似于eclipse对项目文件的管理方式吧。