我正在为一些应用程序编写插件。让我们假设libA-1.0的应用程序hava库依赖关系和我的插件具有类似的libA-2.0依赖关系。版本不同,彼此不兼容(即它们具有不同的api方法签名)。
如何阻止我的插件从libA-1.0加载类(或如何强制它使用libA.2.0中的类)?
有没有办法做这个不写自定义类加载器而不使用forName,loadClassDefinition调用?
当你将一些库放到* .war存档并且它们没有加载时会发生类似的问题因为web containter在类路径上有“相同的”库。
请求任何帮助。
此致 帕维尔
答案 0 :(得分:0)
OSGI提供开箱即用的此功能。我确信还有一些其他插件框架可以提供类似的功能。
有一个URLClassLoader应该能够提供从不同jar加载类的许多功能。你将不得不付出一些努力来改变正在进行工作的Threads的类加载器。手边没有示例,如果您需要一个具体示例,则必须编写一个示例(除非您可以找到一个带有搜索引擎的示例)