プロジェクトKがあるとします
Kは依存しますlib.jar
にはlib.jar
、という名前のクラスがあります。x.y.z.Foo
Kで同じクラスx.y.z.Foo
を作成すると、このプロジェクトで のインスタンスを作成すると、JVM はではなくKで使用されますか?Foo
Foo
lib.jar
また、それが不安定であるか、何かに依存している場合、どのようにしてKのバージョンではなくKFoo
のバージョンを使用する必要があるかを確認するには?lib.jar
プロジェクトKがあるとします
Kは依存しますlib.jar
にはlib.jar
、という名前のクラスがあります。x.y.z.Foo
Kで同じクラスx.y.z.Foo
を作成すると、このプロジェクトで のインスタンスを作成すると、JVM はではなくKで使用されますか?Foo
Foo
lib.jar
また、それが不安定であるか、何かに依存している場合、どのようにしてKのバージョンではなくKFoo
のバージョンを使用する必要があるかを確認するには?lib.jar
スタンドアロン アプリケーション (少なくともカスタム クラスローダーを使用しない場合) での Java クラスのロード動作は安定しています。k.jar (またはパス) が-cp
java 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>
...