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.
私はこの答えを知りたいと思っています。3つのjar A、B、およびCがあるような問題があります.jar Aはjar Cのバージョン1.1をインポートする必要があり、jar Bはjar Cのバージョン1.5をインポートする必要があります.
したがって、私の理解によると、これらのjarファイルはすべて個別のクラスローダーによってロードされるようです。そのため、OSGi が特定の jar を使用して異なるバージョンのシナリオを処理する方法をロードした後。
このシナリオでは、A、B、C-1.1およびC-1.5の4つのバンドルが展開されている必要があります。
Aは(独自のクラスローダーを使用して)解決され、バンドルC-1.1から依存クラスをロードします。
Bは(独自のクラスローダーを使用して)解決され、バンドルC-1.5から依存クラスをロードします。
これにより、両方のバージョンのCを同じアプリケーションで使用できるようになります。これは、同じクラスローダーによってロードされないため、同じ名前のクラスとの競合が発生しないためです。