假设我有两个类(Bob和Tom),其中Bob使用Tom,但Tom不需要Bob。这两个文件都位于同一目录结构中。
如果我尝试以典型方式编译Bob,我可以使它隐式地编译Tom.java,因为它被认为是Bob.java的依赖项。这很好。但是现在假设我想把Tom放在一个JAR文件中。所以我构建了Tom.java并将结果放入一个JAR文件:libTom.jar。现在我使用类路径指向libTom.jar进行编译。不幸的是,编译器看到Tom.java文件并导致它被编译,而不是使用libTom.jar中的类。如果在类路径中找到类,有没有办法让编译器跳过对Tom.java的隐式构建?我意识到这个例子相当牵强,但请放心,周围有一个更复杂、更不牵强的用例涉及到这个问题。谢谢。
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的隐式构建?我意识到这个例子相当牵强,但请放心,周围有一个更复杂、更不牵强的用例涉及到这个问题。谢谢。