2012-09-10 6 views
9

ich diesen Fehler, wenn dieses (relativ einfach) Stück Code tun:java.util.zip.ZipException: ungültige CEN-Header (schlechte Unterschrift)

ZipFile zf = new ZipFile(fn); 
    Enumeration<? extends ZipEntry> eze = zf.entries(); 
    while (eze.hasMoreElements()) { 
     ZipEntry ze = eze.nextElement(); 
     System.out.println(ze.getName()); 
    } 
    zf.close(); 

Eigentlich. Interessanterweise bekomme ich es auf Java-Sun-6u32 und Java-1.6.0-Openjdk-Amd64, aber Java-Sun-7u4 gelingt. unzip selbst scheint es gut zu machen. Ich vermute, das bedeutet, dass diese ZIP-Dateien möglicherweise von einer neueren Version von Zip erstellt werden, die Java 7 versteht, aber die vorherigen Versionen nicht. Aber jede Einsicht würde geschätzt werden. Auch, da ich in der Produktion nicht wirklich die Möglichkeit habe, java 7 zu verwenden, versteht jede Art, frühere Versionen von Java zu machen, diese neue Version von zip (wenn das tatsächlich ist, was das Problem natürlich ist.)

Danke!

+0

Können Sie zip-Beispiel zur Verfügung stellen? –

+0

* Seufz *, leider kann ich nicht .. Die fraglichen Dateien sind ginormous (707 MB) und ich produziere sie nicht. – bnsh

+1

Hmm .. Aber: Ich kann 7z l -slt wasauchimmer.zip machen und bekomme ' 7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 p7zip Version 9.20 (locale = en_US .UTF-8, utf16 = on, HugeFiles = on, 8 CPUs) Eintrag Archiv: ./081212j400-13_file1of3.zip - Path = ./081212j400-13_file1of3.zip Type = zip 64-Bit = + Physikalische Größe = 707951519 ' Hm. Ich kann das nicht richtig formatieren. Hoffentlich kommt es immer noch tho. – bnsh

Antwort

14

7z l -slt Ausgabe in Ihrem Kommentar versehen ist recht nützlich:

Type = zip 64-Bit-

einen Hinweis gibt, dass es ZIP64 (Version 4.5 von ZIP Spezifikation) ist . Jedoch, obwohl Java7 es unterstützt, wird diese Unterstützung im Moment nicht auf Java6 rückportiert und Sie müssen auf externe Bibliothek wie Apache Compress zurückgreifen.

P.S. Als Referenz würde file test.zip so etwas wie

ausgeben
test.zip: Zip archive data, at least v4.5 to extract 
+0

Für mich war das Dateiformat korrekt, aber die JAR überschritt 100MB, was einige Einstellungen in unserem Cluster ausgelöst hat. Hoffe, das hilft jemandem. – Sid

+0

Zip-Tools wie 7zip ändern sich automatisch zu 64bit, wenn die Zip-Größe 4GB überschreitet (offensichtlich) –

Verwandte Themen