如何构建java桌面应用程序运行时模块化



我有一个java桌面应用程序,我想在我的应用程序中添加插件/插件支持功能

经过搜索,我看到Blender3D插件非常好,只需将一些文件复制到Blender目录中,并在首选项窗口中启用它,然后插件就可以添加新的引擎、菜单、按钮和面板。。。。。我喜欢这种风格,希望在我的应用程序中有这样的东西,以便在发布主应用程序后使用插件进行开发

我找到了OSGi,但不明白如何在我的主应用程序中使用用这个功能创建的插件?!而且我不想使用Eclipse RCP或Netbeans RCP,我想将此功能添加到我当前使用javafx for gui的主应用程序中。

谢谢,

看看java反射api

java.lang.reflect.Method等

还学习接口和抽象类的用途。您可能希望您的插件api提供一个或多个带有一个或更多抽象类的接口,作为扩展实现的具体基类。

实际jdk中的一个很好的例子是jdbcapi。它完全是插件驱动的(您要求DriverManager为给定的URI实例化一个驱动程序,它处理隐藏在接口和抽象类后面的实现的编组)。

欢呼

Apache Felix应用程序教程是一个相当古老但仍然非常好的例子,因为它也做了你想做的事情。

在您掌握了这些概念之后,您可能想看看OSGienRoute,了解一下我们在OSGi中拥有的更新功能。

最新更新