如果将两个具有相同内容的jar(比如jarA,jarA_old)添加到工作jar的类路径中(即在主jar的manifest文件中,其jar文件夹中同时包含jarA和jarA_old)。 然后,当调用或导入其中的类时,将考虑哪个Jar?
JarA在其清单中有这个:
Build-Date: Fri, 18 May 2012 12:28:40 Build-Environment: x86 Windows XP 5.1 Build-Number: 5
JarA_old在其清单中显示:
Build-Date: Wed, 23 Nov 2011 06:34:39 Build-Environment: x86 Windows XP 5.1 Build-Number: 4
除此之外所有其他细节都类似..
答案 0 :(得分:1)
ClassLoader将尝试按顺序查找类路径的所有jar中的类。一旦它在罐子里找到它,它就会从这个罐子里装出来。
答案 1 :(得分:1)
规格订单
指定多个类路径条目的顺序非常重要。 Java解释器将在中查找类 目录按它们出现在类路径变量中的顺序。在 在上面的例子中,Java解释器将首先寻找所需的 目录C:\ java \ MyClasses中的类。只有它没有找到 解释器看起来在该目录中具有正确名称的类 在C:\ java \ OtherClasses目录中。
答案 2 :(得分:0)
参见Java: Which of multiple resources on classpath JVM takes?,它会按照列出的顺序搜索广告。使用了第一个找到的匹配。