【发布时间】:2010-12-05 22:20:00
【问题描述】:
这是一个常见问题。我正在使用 2 个库 A.jar 和 B.jar,它们依赖于同一个 jar 的不同版本。
假设在运行时我需要 THIS.x.x.x.jar
MY.jar
-> A.jar -> THIS.1.0.0.jar
-> B.jar -> C.jar -> THIS.5.0.0.jar
我可以针对其依赖项编译特定的 jar (A.jar/B.jar),但在运行时我只需要加载 1 个版本。哪一个?
仅加载 1 个依赖项(最新版本)意味着如果库不向后兼容(是否有向后兼容的库?),我的代码可能会引发运行时异常。
无论如何,我知道像 OSGi 这样的东西可以解决这个问题。
我想知道解决此类问题的旧方法是什么...
非常感谢
【问题讨论】:
-
有可能实现这一点吗?OSGi 如何提供帮助?我们再次引入了对 OSGi 的依赖,这是典型产品软件开发(尤其是嵌入式)的开销
标签: java jar dependencies classloader versions