Java Classloader - 如何引用 jar 的不同版本
2022-09-02 13:49:39
这是一个常见问题。我使用的是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这样的东西可以解决这个问题。
我想知道解决这类问题的旧方法是什么......
多谢