繁体   English   中英

如何防止从jar加载类

[英]How to prevent loading class from jar

我正在为某些应用程序编写插件。 让我们假设应用程序具有libA-1.0的库依赖关系,而我的插件具有类似的libA-2.0依赖关系。 版本不同,并且彼此不兼容(即,它们具有不同的api方法签名)。

如何防止我的插件从libA-1.0加载类(或如何强制其使用libA.2.0的类)?

有什么方法可以做到这一点,即不编写自定义类加载器,也不使用forName,loadClassDefinition调用?

当您将某些库放入* .war归档文件并且由于Web容器在类路径上具有“相同”的库而无法加载时,会发生类似的问题。

感谢任何帮助。

问候,Paweł

OSGI开箱即用提供此功能。 我确定还有其他一些提供类似功能的插件框架。

有一个URLClassLoader ,它应该能够提供很多从不同jar加载类的功能。 您必须付出一些努力来更改正在执行工作的Threads的类加载器。 没有手头的示例,如果需要具体的示例,则必须编写一个示例(除非您可以使用搜索引擎找到一个示例)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM