私のプロジェクトでは、多くの依存関係の .jar ファイルを参照しています。
/lib/xxx.jar /lib/abc.jar
いくつかの (com.search.hit) パッケージを含む xxx.jar ファイル。同じパッケージが abc.jar ファイルで利用できます。
フローをリダイレクトする方法を誰か教えてもらえますか?
私のプロジェクトでは、多くの依存関係の .jar ファイルを参照しています。
/lib/xxx.jar /lib/abc.jar
いくつかの (com.search.hit) パッケージを含む xxx.jar ファイル。同じパッケージが abc.jar ファイルで利用できます。
フローをリダイレクトする方法を誰か教えてもらえますか?
Eclipse で、プロジェクトのビルド パス構成に移動し、[ライブラリ] タブをクリックします。次に、アクセスしたくないパッケージをリストから削除して、再度追加します。
これにより、パッケージの優先度リストが低くなり、再追加したばかりのパッケージの前に他のパッケージがチェックされます。
クラスパスで最初に来る jar のクラスが使用されます。クラスローダーに関する限り、もう1つは存在しない可能性さえあります。このような衝突は避けるのが賢明です。
これにより、問題が発生します。私の提案は、これらの jar ファイルの getter および setter ラッパーを作成するための 2 つの追加クラスを作成することです。2 つの別個のクラスを記述します。それぞれが 1 つだけを参照し、プロジェクト ファイルはこれらのラッパー クラスを使用してこれらの jar から関数を呼び出します。その方がはるかに簡単でしょう。
パッケージ名を変更する必要があります。単一の JVM で同じパッケージと同じファイル名にすることはできません。JVM は、クラス ローダーを使用して 1 つの jar クラスをランダムに読み込み、残りを無視します。