java classloader以哪种顺序加载类?

时间:2013-02-25 10:59:41

标签: java classloader

我在classpath中有两个不同版本的库。 classloader会加载哪个版本?我怎么能改变它?

3 个答案:

答案 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版本的信息。一般来说,你应该避免这种情况。您应该在类路径中保留最新版本