我從動態加載的類動態加載java類時出現問題。從ImageJ插件動態加載類
我的課程是ImageJ
插件,它通過classloader
動態加載其他模塊。加載引用與ImageJ
插件相同包中的某些內容的模塊時,我有NoClassDefFoundError
。
我究竟做的是:
- ImageJ的負載插件(A)
- (A)獲得系統類加載器
- (A)添加JAR網址類加載器
- (A)嘗試在罐子中加載所需的類(B)使用
Class.forName
我無法加載類B,因爲我得到一個NoClassDefFoundError
由B指向一個在當前類加載器中未找到的類。
我想我需要使用相同的類加載器ImageJ
首先加載插件,以便能夠加載我的模塊,仍然可以找到以前由ImageJ
加載的jar文件的引用。我想這樣做,而不必重新編譯ImageJ
。
有沒有辦法解決這個問題,而不必贅述ImageJ
代碼或不得不修改它?
僞類例如
package a;
class A extends PlugInFrame {}
package a;
class C extends MyOwnPlugIn {}
package b;
import a;
class B extends C {}