我有 3 个文件:/a/A.java /a/aa/AA.java /b/B.java 和 B.java 取决于 A.java 和 AA.java。
我基本上希望 javac -classpath /a /b/B.java 工作(即在 /a 下面有 javac 搜索)。有什么办法可以做到这一点吗?
简短的回答是否定的,这不是类路径目录的工作方式。
每个类路径目录都被视为包结构的根。每个包都是根目录中的一个目录。因此,如果 aa 是包目录且 a 是根目录,javac 将自动执行此操作。你的课程看起来像这样:
/a/A.java
class A {}
/a/aa/AA.java
package aa;
class AA {}
/b/B.java
package b;
import aa.AA;
class B {
private AA aaInstance;
private A aInstance;
}
因为 A 没有包,所以放在根包中。
否则,您必须明确设置每个源目录。