Tag: 类classloader

Java Classloader – 如何引用jar的不同版本

这是一个常见问题。 我正在使用2个库A.jar和B.jar ,这些库依赖于同一个jar的不同版本。 假设在运行时我需要THIS.xxxjar 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个依赖项(最新版本)意味着如果库不是向后兼容的,那么我的代码可能会抛出运行时exception(那里有向后兼容的库吗?)。 无论如何,我知道像OSGi这样的东西可以解决这个问题。 我想知道解决这类问题的旧方法是什么…… 非常感谢