動的にロードされたクラスから Java クラスを動的にロードする際に問題が発生しています。
私のクラスはImageJ
プラグインで、他のモジュールを動的にロードしますclassloader
。プラグインNoClassDefFoundError
と同じパッケージにあるものを参照するモジュールをロードするときがあります。ImageJ
私が正確に行うことは次のとおりです。
- ImageJ ロード プラグイン (A)
- (A) システム クラス ローダーを取得する
- (A) jar URL をクラスローダーに追加する
- (A) を使用して、目的のクラス (B) を jar にロードしようとします。
Class.forName
NoClassDefFoundError
現在のクラスローダーで見つからなかった A のクラスを B が指していることが原因で、クラス B をロードできません。
最初にプラグインをロードするために使用したのと同じクラスローダーをImageJ
使用して、モジュールをロードし、以前にImageJ
. 再コンパイルせずにこれを行いたいImageJ
です。
ImageJ
コードを更新したり変更したりすることなく、この問題を解決する方法はありますか?
疑似クラスの例
package a;
class A extends PlugInFrame {}
package a;
class C extends MyOwnPlugIn {}
package b;
import a;
class B extends C {}