Bob が Tom を使用するような 2 つのクラス (Bob と Tom) があるとしますが、Tom は Bob を必要としません。これらのファイルは両方とも同じディレクトリ構造にあります。
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クラスがクラスパスで見つかった場合、コンパイラに暗黙的な構築をスキップさせる方法はありますか?
私は、この例がかなり不自然であることを認識しています。この問題に関連する、より複雑であまり工夫されていない使用例があることをご安心ください。ありがとう。