如果将两个具有不同名称的类似jar添加到类路径中,会发生什么情况



如果两个内容相同的jar(比如jarA、jarA_old)被添加到工作jar的类路径中(即在主jar的清单文件中,它的库文件夹中同时有jarA和jarA_oold)。那么,当调用或导入其中的类时,将考虑哪个Jar??

JarA的清单中有这个:

构建日期:2012年5月18日星期五12:28:40构建环境:x86 Windows XP 5.1内部版本号:5

JarA_在其清单中列出此:

建造日期:2011年11月23日星期三06:34:39构建环境:x86 Windows XP 5.1内部版本号:4

除此之外,所有其他细节都相似。。

ClassLoader将尝试按顺序在类路径的所有jar中查找类。它一在罐子里找到它,就从这个罐子里装进去。

Oracle表示:

规格订单

指定多个类路径条目的顺序很重要。Java解释器将在目录在类路径变量中的显示顺序。在里面在上面的示例中,Java解释器将首先查找所需的类,位于目录C:\java\MyClasses中。只有当它找不到在该目录中具有正确名称的类将使解释器看起来位于C:\java\OtherClasses目录中。

请参阅Java:类路径JVM上的多个资源中的哪一个?,它按列出的顺序搜索罐子。使用第一个找到的匹配项。

最新更新