我有一个 Java 桌面应用程序,我想向我的应用程序添加插件/插件支持功能
搜索后我发现 Blender3D 插件非常好,只需将一些文件复制到 Blender 目录并在首选项窗口中启用它,然后插件可以添加新的引擎、菜单、按钮和面板......我喜欢这种风格并且想要在我的应用程序中拥有类似的东西,以便在发布主应用程序后仅使用插件来开发它
我找到了 OSGi,但无法理解如何在我的主应用程序中使用通过此功能创建的插件?!而且我不想使用 Eclipse RCP 或 Netbeans RCP,我想将此功能添加到我当前使用 javafx for gui 的主应用程序中。
谢谢
最佳答案
看一下java反射API
java.lang.reflect.Method等
还可以了解接口(interface)和抽象类的用途。您可能希望让您的插件 api 提供一个或多个带有一个或多个抽象类的接口(interface),作为要扩展的实现的具体基类。
实际 jdk 中的一个很好的例子是 jdbc api。它完全是插件驱动的(您要求 DriverManager 为给定的 URI 实例化一个驱动程序,它会处理编码实现,该实现隐藏在接口(interface)和抽象类后面)。
干杯
关于java - 如何构建java桌面应用程序运行时模块化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26822266/