如果我在类路径中放入两个不同版本的jar文件,会发生什么?
例如:
item.ToString()
保留在课程路径中
会发生什么?
答案 0 :(得分:13)
虽然我也建议不要这样做,但我仍然想尝试回答你原来的问题:
Java具有类加载器层次结构,因此如果在层次结构的不同级别中同时存在两个JAR,则类加载器会定义其优先级。最常见的示例是Web应用程序类加载器层次结构(例如Tomcat),其中应用程序类的优先级高于容器类(如果两者都适用)。
如果两个JAR位于同一个类加载器(同一级别)中,则文件系统确定顺序,这从开发人员的角度来看是不可靠的,因此请将其视为随机。只有一个加载,但你不知道哪个,甚至可能不会从依赖问题中得到错误。如果遇到依赖性问题,它们可能是java.lang.Errors,例如VerifyError,NoClassDefFoundError,NoSuchMethodError。
答案 1 :(得分:1)
可能发生以下两种情况之一 - 您可以获得版本1.4,或者您可以获得1.5。
这不推荐使用,可能会导致问题,特别是如果您使用两个版本相距很远但API略有不同,可能会导致编译问题
答案 2 :(得分:1)
简短回答你不想这样做。
根据您使用JAR提供的类的方式,您可以有明确的异常或奇怪的行为。