現在、アプリケーションでの OneJar の使用を調査していますが (さまざまな理由から)、アプリケーションは多数のカスタム を使用してURLClassloader
アプリケーション拡張機能をロードしています。
「OneJar」Jar としてバンドルされると、ClassNotFound
例外が発生します。問題のクラスはバンドルされた Jar に存在し、親子関係を解決するためにクラスローダー メカニズムに依存しているだけです。
あれは。interface
バンドルされた Jar (親のクラスローダー コンテキスト内にある必要があります) に格納されている共通があります。拡張機能はこれを実装しinterface
(拡張機能を呼び出すことができるようにする)、親クラスローダーのリソース検出機能を使用する子クラスローダーの機能に依存します。
これを経験した人はいますか、それを解決する方法について何か光を当てていますか.
他の同様のメカニズムに興味があります(ライブラリのJarを単一のJarリソースにバンドルするため、すべてを解凍してJarを単一のファイルにする必要はありません)