我想在Java应用程序的运行时发现接口的所有实现,并从用户可以添加到文件夹中的JAR文件动态加载这些类。基本上这是一个插件系统。
我找到了一些解决方案:
- 使用SPI - 这不是非常灵活:我希望找到一些可能与注释一起使用的东西,或者只是查找扩展的接口,而无需添加外部文本文件。 - 使用Commons Discovery - 看起来像是死路一条,因为最后发布的版本是2005年的0.4版。 - 使用Java Simple Plugin Framework. 5分钟即可运行。没有XML。 - 这看起来非常不成熟。
还有其他广泛使用的解决方案吗?
更新:现在不需要代码分离,OSGi对我的简单需求似乎过于复杂。我还在问题标题中添加了“Simple”以澄清我的意图。
我找到了一些解决方案:
- 使用SPI - 这不是非常灵活:我希望找到一些可能与注释一起使用的东西,或者只是查找扩展的接口,而无需添加外部文本文件。 - 使用Commons Discovery - 看起来像是死路一条,因为最后发布的版本是2005年的0.4版。 - 使用Java Simple Plugin Framework. 5分钟即可运行。没有XML。 - 这看起来非常不成熟。
还有其他广泛使用的解决方案吗?
更新:现在不需要代码分离,OSGi对我的简单需求似乎过于复杂。我还在问题标题中添加了“Simple”以澄清我的意图。