プロジェクトKがあるとします
Kは依存しますlib.jar
にはlib.jar、という名前のクラスがあります。x.y.z.Foo
Kで同じクラスx.y.z.Fooを作成すると、このプロジェクトで のインスタンスを作成すると、JVM はではなくKで使用されますか?FooFoolib.jar
また、それが不安定であるか、何かに依存している場合、どのようにしてKのバージョンではなくKFooのバージョンを使用する必要があるかを確認するには?lib.jar
プロジェクトKがあるとします
Kは依存しますlib.jar
にはlib.jar、という名前のクラスがあります。x.y.z.Foo
Kで同じクラスx.y.z.Fooを作成すると、このプロジェクトで のインスタンスを作成すると、JVM はではなくKで使用されますか?FooFoolib.jar
また、それが不安定であるか、何かに依存している場合、どのようにしてKのバージョンではなくKFooのバージョンを使用する必要があるかを確認するには?lib.jar
スタンドアロン アプリケーション (少なくともカスタム クラスローダーを使用しない場合) での Java クラスのロード動作は安定しています。k.jar (またはパス) が-cpjava argの lib.jar の前にあることを確認してください。
java -cp k.jar lib.jar ...
または、K プロジェクトの /META-INF/MANIFEST.MF に依存関係を追加します。
...
Class-Path: lib1.jar lib2.jar
...
そして走る
java -jar k.jar
k.jar クラスが最初にロードされます
Mavenでは
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
</plugin>
...