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
クラスがクラスパスで見つかった場合、コンパイラに暗黙的な構築をスキップさせる方法はありますか?
私は、この例がかなり不自然であることを認識しています。この問題に関連する、より複雑であまり工夫されていない使用例があることをご安心ください。ありがとう。