我有一个正在编写的 Java 控制台应用程序,我希望人们能够为它编写插件,然后将这些插件作为 jar 分发。我希望用户能够将插件(jar)放入“插件”文件夹,重新启动应用程序,并加载并运行插件。我不希望用户必须为插件或类似的东西指定一个类/方法来执行。
我可以将带有通配符类路径的 jar 加载到“插件”目录,但我需要一些方法让这些插件通过运行register()
每个插件需要在某处定义的方法来向应用程序注册自己。插件(jar)如何指定register()
定义它的方法的位置(包和类),以便我的应用程序知道调用它?
我意识到 OSGi 可以做到这一点,但这是一个相当小的应用程序,如果存在更简单的解决方案,我宁愿不使用 OSGi。
背景:
这些插件从他们想要处理的应用程序中注册事件。用户将能够在每个插件的基础上禁用特定事件的处理,因此这些插件的配置将存储在应用程序的数据库中。当插件注册自己时,应用程序将检查数据库以查看该插件是否存在配置,如果不存在,它将在数据库中为其创建新的默认配置。