注意:指定的路径是指存放Java包的位置,里边不包含Java包的路径。
Java类的层次结构(后面几个例子用到)
例如java源文件的层次结构如下,其中com.thb是Java包名:
Person 是父类:
package com.thb;
public class Person {
public String getOccupation() {
return "";
}
}
Student 是Person 的子类:
package com.thb;
public class Student extends Person {
@Override
public String getOccupation() {
return "student";
}
}
因为Student依赖Person,没有指明到哪边寻找Person的定义,编译出错:
下面用-sourcepath src\com\thb指定了源文件Person.java的搜索路径,但是错误的,因为com/thb是包名的一部分,不应该包含在内:
下面用-sourcepathsrc指定了源文件Person.java的位置,编译成功:
到输出目录查看,生成了正常的class文件:
在src/com/thb目录下有Person.java和Student.java文件,其中Student依赖于Person,现在全部编译该目录下的文件,不指定sourcepath编译成功:
到输出目录查看,生成了正常的class文件: