1. ホーム
  2. java

[解決済み] JavaでPluginシステムを構築する最適な方法

2022-04-27 07:30:52

質問

Javaアプリケーションのプラグインシステムをどのように実装しますか?

次のようなことを実現する、(開発者にとって)使いやすいシステムは可能でしょうか。

  • ユーザーはプラグインをアプリのサブディレクトリに置く
  • プラグインは設定画面を提供することができます
  • フレームワークを使用する場合、ライセンスは商用開発に対応していますか?

解決方法は?

まず、すべてのプラグインが実装する必要のあるインターフェイスが必要です。

public interface Plugin {
    public void load(PluginConfiguration pluginConfiguration);
    public void run();
    public void unload();
    public JComponent getConfigurationPage();
}

プラグイン作者は、自分のプラグインをJARファイルにバンドルする必要があります。アプリケーションは JAR ファイルを開き、JAR マニフェストの属性または JAR ファイル内の全ファイルのリストを使用して、プラグイン・インターフェイスを実装するクラスを見つけることができます。そのクラスをインスタンス化すると、プラグインが使用できるようになります。

もちろん、プラグインができることとできないことを制限するために、ある種のサンドボックスを実装したい場合もあるでしょう。私は、小さな テストアプリケーション (そして ブログで紹介 ) で、2つのプラグインで構成され、そのうちの1つはローカルリソースへのアクセスを拒否されています。