【发布时间】:2012-07-24 20:26:24
【问题描述】:
我正在为一些应用程序编写插件。让我们假设 libA-1.0 的 Application hava 库依赖项和我的插件具有 libA-2.0 的类似依赖项。版本不同,互不兼容(即他们有不同的api方法签名)。
如何防止我的插件从 libA-1.0 加载类(或如何强制它使用来自 libA.2.0 的类)?
有什么方法可以做到这一点,而不是编写自定义类加载器,也不使用 forName、loadClassDefinition 调用?
当您将一些库放入 *.war 存档并且由于 Web 容器在类路径上有“相同”的库时,它们不会加载,也会出现类似的问题。
感谢您的帮助。
问候, 帕维尔
【问题讨论】:
-
我很想知道在没有类加载器的情况下是否可以做到这一点,但我建议没有。
标签: java jar classpath classloader contextclassloader