Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
例えば、
プログラムa.jarがlog4j-1.0.jarに依存している場合、それを作成すると、マシンで正常に動作します。
後で、自分のプログラムと互換性のない log4j-2.0.jar がある別のマシンにプログラムをコピーします。
Javaランタイムはそれをどのように発見しますか? コードの例外によって?それは怖すぎる…
ありがとう
私はかつてそのようなシナリオに遭遇しました。はい、クラス パスに 2 つの異なる log4j ライブラリ バージョンを指定した場合、Java ランタイムはそれらの両方を検出し、どちらが選択される保証はなく、ライブラリに下位互換性がない場合は特に例外/エラーが発生する可能性があります。
ほとんどの Java クラスローダーは、ライブラリがロードされる順序について保証していないため、クラスパスで依存関係を重複させないようにする必要があります。