两个java文件,Pac.java和A.java
package com.test;
class Pac {
public static void main(String[] args){
com.test.test2.A.test();
}
}
package com.test.test2;
public class A{
public static void main(){
test();
}
public static void test(){
System.out.println("I'm AAAAAAAAAAAAAAAAAAAAAAA");
}
}
其中,类A是Pac类的依赖类,没有A.class文件,Pac.java无法编译通过。
首先,编译A.java,class文件产生在c:路径下
然后,才是编译Pac.java
意思是告诉jvm,需要用到的类路径可以在c:\路径下查找,Pac.class文件将产生在本地路径下。
最后,执行Pac.class, -cp参数的意思是:缺乏的类可到c:\路径下寻找。
2. 使用 -d <directory>编译选项
是不是觉得上面的编译方法有点麻烦,能不能自动在当前路径(或任意指定的路径)下生成包层次呢?有!使用-d <directory>编译选项就能做到。
E:\java\src >javac
此时,在当前目录下就生成了一个 org\javaresearch 目录,并且输出的 .class 文件也在里面。运行:
E:\java\src >java org.javaresearch.HelloWorld
系统打印: Hello World!
如果你想把生成的类文件集中存放在一个目录中,比如: E:\java\classes 下,那么你首先创建这个目录,然后编译时:
E:\java\src >javac -d E:\java\classes HelloWorld.java
就可以把生成的类文件放到 E:\java\classes 目录下,并且按照包层次相应的创建目录路径。你可以在 E:\java\classes\org \ javaresearch 下找到 HelloWorld.class 文件。此时使用如下命令可以正确运行(注意如果要用到其它类,请在 CLASSPATH 中 设好):
E:\java\classes >java org.javaresearch.HelloWorld