2

例えば、

プログラムa.jarがlog4j-1.0.jarに依存している場合、それを作成すると、マシンで正常に動作します。

後で、自分のプログラムと互換性のない log4j-2.0.jar がある別のマシンにプログラムをコピーします。

Javaランタイムはそれをどのように発見しますか? コードの例外によって?それは怖すぎる…

ありがとう

4

2 に答える 2

0

私はかつてそのようなシナリオに遭遇しました。はい、クラス パスに 2 つの異なる log4j ライブラリ バージョンを指定した場合、Java ランタイムはそれらの両方を検出し、どちらが選択される保証はなく、ライブラリに下位互換性がない場合は特に例外/エラーが発生する可能性があります。

ほとんどの Java クラスローダーは、ライブラリがロードされる順序について保証していないため、クラスパスで依存関係を重複させないようにする必要があります。

于 2013-07-25T05:47:52.473 に答える