java.util.zip.ZipError: header CEN inválido (assinatura incorreta)

Estou usando o Java 1.7.0_40 no Red Hat Linux e tenho o seguinte código:

Path zipfile = Paths.get(filename); FileSystem fs = FileSystems.newFileSystem(zipfile, FileTest.class.getClassLoader()); 

A variável filename aponta para um arquivo zip de 788MB. O tamanho não compactado do arquivo zip é de 8,3 GB. Quando executo o código acima, recebo a seguinte exceção:

 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.(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) 

Fiquei com a impressão de que o Java 7 era capaz de lidar com grandes arquivos zip. Alguém pode explicar por que isso está acontecendo?

Obrigado.

Eu também enfrentei o problema no projeto baseado em Maven. O problema ocorreu devido a jars corrompidos. Excluiu os flasks da pasta .m2 e construiu o projeto novamente; e funcionou como charme.

Esse problema ocorre Devido ao arquivo jar foi baixado está corrompido.

se você estiver usando o Maven.

  • Para solucionar esse problema, exclua o Particular Jar File na pasta C: /Users/public/.m2/repository .
  • Depois disso, adicione uma nova versão do Maven em POM.xml .
  • Reconstrua e tente. Vai funcionar bem.

Há duas explicações possíveis:

  • Você tem um arquivo ZIP corrompido – Erro de compilation no maven2: “header CEN inválido (assinatura incorreta)”

  • É algo a ver com o ZIP-64:

É problema de configuração para o compilador maven no seu arquivo pom. A origem e o destino java da versão padrão são 1.5, até o JDK usado tem a versão mais alta.

Para corrigir, adicione a seção de configuração do plugin do compilador maven com a versão java superior, por exemplo:

  org.apache.maven.plugins maven-compiler-plugin 3.6.1  1.6 1.6   

Para mais informações, consulte estes links:

compilador maven

relatório de erro