我在Red Hat Linux上使用Java 1.7.0_40,我有以下代码:
Path zipfile = Paths.get(filename);
FileSystem fs = FileSystems.newFileSystem(zipfile, FileTest.class.getClassLoader());
Run Code Online (Sandbox Code Playgroud)
该filename变量指向一个788MB的zip文件.zip文件的未压缩大小为8.3GB.当我运行上面的代码时,我得到以下异常:
Exception in thread "main" java.util.zip.ZipError: invalid CEN header (bad signature)
at com.sun.nio.zipfs.ZipFileSystem.zerror(ZipFileSystem.java:1605)
at com.sun.nio.zipfs.ZipFileSystem.initCEN(ZipFileSystem.java:1058)
at com.sun.nio.zipfs.ZipFileSystem.<init>(ZipFileSystem.java:130)
at com.sun.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:139)
at java.nio.file.FileSystems.newFileSystem(FileSystems.java:386)
at FileTest.readFromZip(FileTest.java:35)
at FileTest.main(FileTest.java:25)
Run Code Online (Sandbox Code Playgroud)
我的印象是Java 7能够处理大型zip文件.任何人都可以解释为什么会这样吗?
谢谢.
Tha*_*rai 10
出现此问题由于下载的jar文件已损坏.
有两种可能的解释:
您的ZIP文件已损坏-maven2中的编译错误:“无效的CEN标头(错误的签名)”
这与ZIP-64有关:
但也请注意,显然仅在1.7.0_b55中添加了ZIP-64支持... https://blogs.oracle.com/xuemingshen/entry/zip64_support_for_4g_zipfile
| 归档时间: |
|
| 查看次数: |
40033 次 |
| 最近记录: |