問題: 我一直在努力獲得Apache Commons Zip 64的功能,特別是ZipArchiveOutputStream.setUseZip64()方法。當我試圖用這個方法,我得到一個「的方法setUseZip64(Zip64Mode)是未定義的類型ZipArchiveOutputStream」的錯誤。爲什麼會發生這個錯誤?如何獲得Apache Commons Zip - Zip64工作
我試過了什麼 我在這方面花了相當一段時間。我將外部JAR文件添加(並驗證)到項目中。從我在Eclipse中看到,當我嘗試實例化一個ZipArchiveOutputStream,奇怪的是,物體的簽名變成了:
org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.ZipArchiveOutputStream
注意重複簽名
ZipArchiveOutputStream.ZipArchiveOutputStream 。
可替換地,我手動添加的源代碼的實際項目構建。當我的源代碼手動添加到項目中,奇怪的是,該方法的工作原理 - 也就是說,我可以調用
zipout.setUseZip64(Zip64Mode.Always)
沒有問題(和簽名似乎不像上面那樣重複)。
理想情況下,我只是想引用外部Apache的JAR文件,而不是在內部添加源。因此,爲什麼會發生這種錯誤?
注:我還內置Apache源代碼是我自己編譯的版本作爲一個單獨的JAR,這也顯示出描述的錯誤。因此,只有代碼,以實際Eclipse項目的手動添加似乎幫助。
注:我確信,沒有手動添加的版本和外部JAR基準之間的衝突。
代碼示例
import org.apache.commons.compress.*;
import org.apache.commons.compress.archivers.zip.*;
...
ZipArchiveOutputStream zipout =
new ZipArchiveOutputStream(new FileOutputStream(filenameandpath));
zipout.setUseZip64(Zip64Mode.Always) ; // ERROR HERE The method setUseZip64(Zip64Mode)
// is undefined for the type
// ZipArchiveOutputStream
配置 的Eclipse 3.7(4.2) 的Java 1.6 阿帕奇百科全書壓縮(1.3版本及更高版本1.4)