0

我正在创建一个独立的 java 应用程序,它将 tar.gz 解压缩为 .tar 文件。

GZIPInputStream gZIPInputStream = new GZIPInputStream(is);

FileOutputStream fos = new FileOutputStream(tarFile);
byte[] buffer = new byte[2048];
int len;
while((len = gZIPInputStream.read(buffer)) > 0){
    fos.write(buffer, 0, len);
}

fos.close();
gZIPInputStream.close();

下面的代码在 Eclipse 中运行时工作正常,但是当我创建一个可运行的 jar 并使其在 Linux 服务器中运行时,它会抛出以下错误。

java.util.zip.ZipException: invalid code lengths set
        at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:164)
        at java.util.zip.GZIPInputStream.read(GZIPInputStream.java:117)
        at java.io.FilterInputStream.read(FilterInputStream.java:107)
        at com.bcs.wiposcrape.service.WipoDataServiceImpl.deCompressGZipFile(WipoDataServiceImpl.java:218)
        at com.bcs.wiposcrape.service.WipoDataServiceImpl.unZipFTPFiles(WipoDataServiceImpl.java:126)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:206)
        at com.sun.proxy.$Proxy33.unZipFTPFiles(Unknown Source)
        at com.bcs.wiposcrape.launch.WipoScrape.scrapeLaunch(WipoScrape.java:56)
        at com.bcs.wiposcrape.launch.WipoScrape.main(WipoScrape.java:22)

该错误实际上是从代码片段的第 5 行抛出的。有人可以帮我找出真正的问题吗?任何帮助将非常感激。

4

0 回答 0