繁体   English   中英

同一jar文件中的两个相同的类

[英]Two identical classes in the same jar file

我有一个jar文件-它恰好是使用JAXB从XML模式生成的。

我刚刚注意到,在那个jar的相同路径中,我有2个名称完全相同的类。 实际上,如果我使用7-zip解压缩jar,Windows会问我是否要将文件“ blah.class”替换为“ blah.class”。

这怎么可能? 从Java角度还是从文件系统角度来看? zip格式允许吗? 我试图四处搜寻,但无济于事。

谢谢大卫。

是的,zip确实允许2个文件具有相同的完全限定名称。

蚂蚁罐参考页指出:

请注意,zip格式允许单个存档中存在多个具有相同标准名称的文件。 据记录,这会给毫无戒心的用户带来各种问题。 如果希望避免这种情况,则必须将重复属性设置为默认值“ add”以外的其他值。

然后,Java将从类路径中选择第一个。

当在同一内部版本中包含相同接口的多个实现时,我遇到了类似的问题。 如果您发现有必要执行此操作,并且正在使用Maven,则可以使用exclude标签从生产的jar文件中删除一种实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM