【发布时间】:2013-07-28 18:36:28
【问题描述】:
嘿嘿,
假设我们有这样的设置:
应用程序 -> 插件 -> 模块
“插件”和“模块”依赖于“应用程序”。
Application 使用 1.0 版的库。 Module 依赖于相同的库,但版本为 2.0。类是相同的,但在 2.0 中删除了一些方法并添加了一些方法。 Plugin 使用 application 的父 ClassLoader 和 module plugin 的父 ClassLoader。
现在的问题是模块使用 1.0 版本的库,但它依赖于 2.0 -> 例如找不到方法
解决这个问题的正确方法是什么?可行的方法是重新定位 2.0 版,但在运行时可能有一种解决方法。也许可以更改类加载器来解决问题。
最大
【问题讨论】:
-
你必须修复你的依赖。没有办法解决这个问题。假设您在 Application 中从 1.0 版加载
Class的一个版本并将其传递给插件中的另一个Class,然后会发生什么? -
@BoristheSpider 是的,除了阴影/重定位:P
标签: java class classloader