我在classpath中有两个不同版本的库。 classloader会加载哪个版本?我怎么能改变它?
答案 0 :(得分:4)
如果你有
lib-v1.jar:lib-v2.jar
那么它是有序的。首先会加载lib-v1.jar
(类似于PATH
)。
我可能会在实践中避免这种情况(超出测试用途等)如果您在lib-v2.jar
中引用不在lib-v1.jar
中的库类(如果API已经退役可能),则可能会引起混淆。这样你就可以从v2加载初始类,从v1加载更常见的类,这些类可能不兼容。
答案 1 :(得分:0)
这取决于您将此库列表提供给JVM的顺序。
答案 2 :(得分:0)
Classloader没有关于jar版本的信息。一般来说,你应该避免这种情况。您应该在类路径中保留最新版本