从第三方jar加载类不同的版本

时间:2015-03-04 00:36:51

标签: java jar runtime classloader



我正在使用2个第三方罐子(不能更改类文件)。每个使用相同的通信jar(相同的路径和名称),但使用不同的版本。如果第三方没有使用正确的版本,它会崩溃。例如:

第三方A.jar呼叫comm1.3.jar
第三方B.jar呼叫comm1.8.jar

调用A或B是多线程的,可能会出现同步问题,所以我不能依赖类加载器命令。

如何确保每个第三方罐装载/使用正确的通讯罐?
你有代码样本吗?

提前致谢,
弗雷迪

1 个答案:

答案 0 :(得分:0)

同一个类(由完全限定名称标识)每个类加载器只能加载一次。

如果您需要加载同一个库的2个不同版本,则只能通过使用模块系统或使用多个类加载器来实现。