我有一個jar文件 - 它恰好是使用JAXB從XML模式生成的。同一個jar文件中的兩個相同的類
我剛剛注意到,在那個jar裏面的同一個路徑中,我有兩個完全相同名稱的類。事實上,如果我使用7-zip解壓縮jar,Windows問我是否想用「blah.class」替換文件「blah.class」。
這怎麼可能?從Java的角度和從文件系統的角度來看? zip格式是否允許這樣做?我試圖谷歌周圍,但無濟於事。
謝謝, David。
我有一個jar文件 - 它恰好是使用JAXB從XML模式生成的。同一個jar文件中的兩個相同的類
我剛剛注意到,在那個jar裏面的同一個路徑中,我有兩個完全相同名稱的類。事實上,如果我使用7-zip解壓縮jar,Windows問我是否想用「blah.class」替換文件「blah.class」。
這怎麼可能?從Java的角度和從文件系統的角度來看? zip格式是否允許這樣做?我試圖谷歌周圍,但無濟於事。
謝謝, David。
是的,zip確實允許2個文件具有相同的完全限定名稱。
螞蟻罐子參考頁狀態:
請注意,zip格式允許相同的完全限定名稱的多個文件到一個存檔中存在。這已被記錄爲對毫無戒心的用戶造成各種問題。如果您希望避免此行爲,則必須將重複屬性設置爲非默認值「添加」的值。
然後Java會從類路徑中選擇第一個。
當在同一個版本中包含相同接口的多個實現時,我遇到了類似的問題。如果您發現有必要執行此操作並使用Maven,則可以使用排除標籤從生成的jar文件中刪除其中一個實現。