16

プロジェクトKがあるとします

Kは依存しますlib.jar

にはlib.jar、という名前のクラスがあります。x.y.z.Foo

Kで同じクラスx.y.z.Fooを作成すると、このプロジェクトで のインスタンスを作成すると、JVM はではなくKで使用されますか?FooFoolib.jar


また、それが不安定であるか、何かに依存している場合、どのようにしてKのバージョンではなくKFooのバージョンを使用する必要があるかを確認するには?lib.jar

4

1 に答える 1

3

スタンドアロン アプリケーション (少なくともカスタム クラスローダーを使用しない場合) での 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>
         ...
于 2013-01-05T04:13:44.377 に答える