このチュートリアルに従ってプラグインを動的にロードするアプリケーションを開発しました: http://solitarygeek.com/java/a-simple-pluggable-java-applicationですが、問題に遭遇しました。私のメイン アプリケーションには、静的メソッドを持つクラスがあります。プラグイン内からそのクラスにアクセスするにはどうすればよいですか? ロードされたプラグインからクラスにアクセスしようとすると、プラグインとアプリケーションが実行されているにもかかわらず、クラスが見つからないというエラーが表示されます。ありがとうございました
3 に答える
1
プラグイン アーキテクチャでは、プラグイン実装クラスに直接アクセスすることは想定されていません。自由に使えるのは、実装クラスのインスタンスにアクセスするためのインターフェースです。それは明らかに静的メソッドを排除します。これらのメソッドをインスタンス メソッドにリファクタリングし、インターフェイスを介して公開します。
于 2012-06-28T11:00:18.727 に答える
0
URLClassLoader MyLoader = new URLClassLoader(new URL [] {}、MyClass.class.getClassLoader())のように、アプリケーションクラスローダーを親クラスローダーとしてクラスローダーを作成することで問題を解決できました。私のアプリケーションは、MyLoaderでロードされたプラグインに表示されます
于 2012-07-17T12:05:00.380 に答える
0
クラスローダーの問題のように聞こえます。プラグインをロードするクラス ローダーは、メイン クラスを認識しません。コードサンプルなしでこれ以上言うのは難しい.
于 2012-06-28T11:07:38.647 に答える