java - Linux下java war文件解压异常

标签 java zip zip4j

在我的 java 应用程序中解压缩 zip 文件时遇到问题。它是一个打包为war文件并在jetty 9.4下运行的Web服务。 这是我的(缩短的)堆栈跟踪

2018-05-10 20:13:48,180 ERROR [ProductPublisherHelper:63] net.lingala.zip4j.exception.ZipException: net.lingala.zip4j.exception.ZipException: compression type not supported
net.lingala.zip4j.exception.ZipException: net.lingala.zip4j.exception.ZipException: net.lingala.zip4j.exception.ZipException: compression type not supported
        at net.lingala.zip4j.unzip.Unzip.initExtractFile(Unzip.java:163)
        at net.lingala.zip4j.unzip.Unzip.initExtractAll(Unzip.java:83)

我的服务器在 Ubuntu 16.04 下运行。 到目前为止,这段代码一直运行良好。就是这个文件解压失败。同时,相同的代码在 Windows 上相同的条件下(jetty、war、要解压缩的相同文件)运行得非常好...

该文件是一个大于 1GB 的大压缩 TIF 文件,除此之外我认为它没有什么特别的。我的设置中是否有什么我应该检查的内容可以解释为什么它在 Linux 下失败但在 Windows 下工作? Windows 下的 JDK 为 1.8.0_101,Linux 下的 JDK 为 1.8.0_171。

最佳答案

也许您使用的外部库有问题。对于我的项目,我使用内置的 ZipInputStream

创建输入流:ZipInputStream zis = new ZipInputStream(Files.newInputStream(inputPath))

浏览 .zip 中的文件:ZipEntry ze = zis.getNextEntry();

将 zip 中的输入复制到新文件:

try (OutputStream 输出 = Files.newOutputStream(newFile)) { IOUtils.copy(zis, 输出); }

来自 org.apache.commons.io 的 IOUtils

关于java - Linux下java war文件解压异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50324855/

相关文章:

java - 任务编排实现

java - java中使用数组的字典

java - 我可以从 BufferedImage 获取原始图像吗?

zip - 为什么 *.tar.gz 仍然比 *.tar.xz 更常见?

java - Zip4J -> java.security.ProviderException : Could not construct MacSpi instance

类似于c++ map的java库

vba - 使用 Excel VBA 压缩文件会产生一个空存档

python zip 导入错误

java - 无法在 scala/java 中解压使用 Windows "Sent to compressed folder"创建的文件

JAVA - zip4j,仅从 zip 文件中提取所有文本文件