用Java构建插件系统的最佳方法

您将如何为Java应用程序实现插件系统?

是否有一个易于使用的(对于开发人员而言)系统可以实现以下目的:

  • 用户将其插件放入应用程序的子目录中

  • 插件可以提供配置屏幕

  • 如果使用框架,许可证是否与商业开发兼容?


森林海
浏览 405回答 3
3回答

倚天杖

首先,您需要一个所有插件都需要实现的接口,例如public interface Plugin {    public void load(PluginConfiguration pluginConfiguration);    public void run();    public void unload();    public JComponent getConfigurationPage();}然后,插件作者应将其插件捆绑到JAR文件中。您的应用程序将打开JAR文件,然后可以使用JAR清单中的属性或JAR文件中所有文件的列表来查找实现您的Plugin接口的类。实例化该类,插件即可使用。当然,您可能还希望实现某种沙箱操作,以使该插件在它可以做什么和不能做什么方面受到限制。我创建了一个小型测试应用程序(并向其发布了博客),该应用程序由两个插件组成,其中一个被拒绝访问本地资源。

蓝山帝景

使用OSGi。它是Eclipse插件系统的基础。Equinox是Eclipse的实现(许可的EPL),Felix是Apache Project的实现(许可的Apache Public License)。Eclipse提供了一个具体的示例,OSGi可以涵盖您提到的要点(或者,如果您想要完整的Eclipse / SWT / JFace堆栈,则可以在Eclipse RCP之上构建应用程序)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java