首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java SPI - ServiceLoader -将多个JAR添加到应用程序类路径

Java SPI - ServiceLoader -将多个JAR添加到应用程序类路径
EN

Stack Overflow用户
提问于 2012-07-12 16:18:00
回答 2查看 2.9K关注 0票数 2

我在项目中实现这个逻辑时遇到了问题。我正在使用ServiceLoader,我不知道这是否可能,但我想动态地将JAR添加到应用程序的某个已知目录中,以便应用程序可以在启动时加载它们。我唯一实现的是我知道如何创建可扩展的一个JAR (使用META-INF/services),这样我就可以向这个JAR添加越来越多的提供程序和类(实现)。JAR像普通库一样包含在类路径中,因此应用程序知道它。我想实现的目标:我不想扩展一个jar文件,但我想通过添加更多的jar来扩展应用程序,比如带有提供者(服务)的插件,但我不知道如何实现。

感谢您的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-12 18:11:22

您只需要(a)使用这些目录中所有JAR文件的URL构造一个URLClassLoader,然后(b)调用ServiceLoader.load(Class service, ClassLoader loader)

票数 6
EN

Stack Overflow用户

发布于 2012-07-12 16:30:43

我认为您可以创建一个your customer ClassLoader。ClassLoader将以动态模式从jars加载类。很多框架都有一些你想要的功能。您可以在其中查看一些代码。jetty中的WebAppClassLoader类可能是一个起点!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11447699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档