假设我有两个类(鲍勃和汤姆),鲍勃使用汤姆,但汤姆不需要鲍勃。这两个文件都位于相同的目录结构中。
public class Bob {
public static void main(String[] args) {
System.out.println(Tom.MESSAGE);
}
}
public class Tom {
public static String MESSAGE = "Hello World";
}
如果我尝试以典型方式编译 Bob,我也可以让它隐式编译Tom.java
,因为它被识别为Bob.java
. 这很好用。
但是现在假设我想将 Tom 放在一个 JAR 文件中。所以我构建Tom.java
并将结果放入一个 JAR 文件:libTom.jar。我现在用指向的类路径进行编译libTom.jar
。不幸的是,编译器看到该Tom.java
文件并导致它被编译,而不是使用libTom.jar
. 有没有办法让编译器跳过在Tom.java
类路径中找到类的隐式构造?
我承认这个例子是相当做作的。请放心,围绕这个问题有一个更复杂、更少人为的用例。谢谢。