カスタム ロジックを使用して 1 つのクラスをロードしようとしています (つまり、ライブラリ内のクラスの実装をカスタム バージョンに交換したい)。
デフォルトのクラスローダにプロキシする独自のカスタム クラスローダを作成したいと考えています。ただし、デフォルトの classloader:sun.misc.Launcher.AppClassLoader
が表示されないようです。つまり、拡張できません。
1 つの特定のクラスでサブビングしながら、既存のクラスローダーの動作を複製するのに十分な堅牢な単一のクラスローダーを作成するためのソリューションは、非常に高く評価されます。
私が使用しようとしたことに注意してください
Thread current = Thread.currentThread();
current.setContextClassLoader(newOne);
ただし、これは機能していないようです。つまり、スレッドにロードされたクラスが常にカスタム クラスローダーをトリガーするとは限りません。
環境
「new LibraryClass()」の呼び出しで、このクラスのカスタム実装を使用したいのですが、「new ...」の呼び出しは、私の管理下にないjarファイルにあります。