我正在使用2个第三方罐子(不能更改类文件)。每个使用相同的通信jar(相同的路径和名称),但使用不同的版本。如果第三方没有使用正确的版本,它会崩溃。例如:
第三方A.jar呼叫comm1.3.jar
第三方B.jar呼叫comm1.8.jar
调用A或B是多线程的,可能会出现同步问题,所以我不能依赖类加载器命令。
如何确保每个第三方罐装载/使用正确的通讯罐?
你有代码样本吗?
提前致谢,
弗雷迪
答案 0 :(得分:0)
同一个类(由完全限定名称标识)每个类加载器只能加载一次。
如果您需要加载同一个库的2个不同版本,则只能通过使用模块系统或使用多个类加载器来实现。