当两个Java框架需要第三个框架,但两个框架中的每一个都需要第三个框架的不同版本时,会发生什么?
在我的Java项目中,我使用了两个不同的框架(假设A.jar和B.jar),它们都需要一个通用框架(假设Log4j.jar),但有两个不同的版本。如果框架A需要Log4J v1.1,B需要Log4j v1.2,Java如何处理它?它是否会导致某种冲突/错误,或者会以某种方式(如何?)解决?
如果它不会导致冲突/错误(我的项目可以编译和运行) - 我可以在这个项目中使用任何版本的Log4j吗?还是我被迫选择Log4j的较低/较高版本号?
更新:更具体...如果Log4j API的某些部分在v1.2中发生了变化(假设一个方法doIt()签名发生了变化),并且A和B都调用doIt,该怎么办?将会发生什么?我的项目会运行吗?它会在首次使用doIt时崩溃吗?我必须将哪个版本的Log4j放在类路径上 - v1.2或两者兼而有之?