Java 如何让ApacheCommonsZip--Zip64工作
问题: 我一直在努力让Apache Commons Zip 64功能正常工作,特别是ZipArchiveOutputStream.setUseZip64()方法。当我尝试使用这个方法时,我得到一个“方法setUseZip64(Zip64Mode)对于类型ZipArchiveOutputStream是未定义的”错误。为什么会发生此错误 我尝试的 我在这方面花了不少时间。我将外部JAR文件添加(并验证)到项目中。从Eclipse中看到,当我尝试实例化ZipArchiveOutputStream时,奇怪的是,对象的签名变成: org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.ZipArchiveOutputStream 请注意重复的签名为 ZipArchiveOutputStream.ZipArchiveOutputStream 或者,我手动将源代码添加到实际的项目构建中。奇怪的是,当我将源代码手动添加到项目中时,该方法可以工作——也就是说,我可以调用 zipout.setUseZip64(Zip64模式始终) 无问题(签名似乎与上述内容不重复) 理想情况下,我只想引用外部apachejar文件,而不是在内部添加源代码。因此,为什么会发生这种错误 注意:我还构建了自己的Apache源代码编译版本作为一个单独的JAR,这也显示了所描述的错误。因此,似乎只有手动将代码添加到实际的Eclipse项目中才有帮助 注意:我确保手动添加的版本和外部JAR引用之间没有冲突 代码示例Java 如何让ApacheCommonsZip--Zip64工作,java,zip,apache-commons,Java,Zip,Apache Commons,问题: 我一直在努力让Apache Commons Zip 64功能正常工作,特别是ZipArchiveOutputStream.setUseZip64()方法。当我尝试使用这个方法时,我得到一个“方法setUseZip64(Zip64Mode)对于类型ZipArchiveOutputStream是未定义的”错误。为什么会发生此错误 我尝试的 我在这方面花了不少时间。我将外部JAR文件添加(并验证)到项目中。从Eclipse中看到,当我尝试实例化ZipArchiveOutputStream时,奇
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
Apache Commons Compress(1.3版和更新的1.4版)在解决了这个问题几个月后,意外地找到了解决方案 如果同时导入ApacheCommonsZip和Mahout发行版0.5,就会出现问题 具体来说,在这一过程中存在着微妙的导入冲突
mahout-examples-0.5.jar
mahout-examples-0.5-job.jar
它显然也使用了Apache Commons的旧版本。导入顺序导致了一个微妙的冲突,使得最近的Apache Commons功能无效——除非我手动将Commons压缩代码(仅用于测试)导入到项目中——实际上破坏了与Mahout的真正冲突