Input/Output Mit Windows 7 erzeugtes zip-File in Java 7 öffnen

N

nillehammer

Gast
Moin Forum,
ich habe wie folgt mit Windows 7 ein zip-File erzeugt:
- Im Datei-Explorer Rechte Maustaste -> Neu -> Zip komprimierter Ordner
- Mit Drag&Drop Textdateien reingeschoben

Dieses Zip wollte ich jetzt in Java 7 öffnen:
Java:
final File file = new File("C:/my.zip");

final ZipFile zipFile = new ZipFile(file);
		
/*
 * Habe erst gedacht, es könnte am Windows-Charset liegen.
 * Habe darum auch folgendes ausprobiert.
 * Geht aber auch nicht
 */
//final ZipFile zipFile = new ZipFile(file, Charset.defaultCharset());
Ich bekomme in Zeile 3 (in meinem kompletten Quellcode Zeile 20) direkt eine Exception:
Code:
Exception in thread "main" java.util.zip.ZipException: invalid CEN header (bad compression method)
	at java.util.zip.ZipFile.open(Native Method)
	at java.util.zip.ZipFile.<init>(ZipFile.java:214)
	at java.util.zip.ZipFile.<init>(ZipFile.java:144)
	at java.util.zip.ZipFile.<init>(ZipFile.java:158)
             at App.main(App.java:20)
Danach habe ich mal gegoogelt. Finde aber nur zwei Bug-Meldungen zu Java 1.4 und 1.5. Was läuft denn da schief? Soo ausgefallen sind mein UseCase und mein Code ja nun nicht.
 
N

nillehammer

Gast
So, habe weiter gesucht und das hier gefunden: Compressing and Decompressing Data Using Java
Dort wird statt mit ZipFile mit ZipInputStream gearbeitet. Da ich auch das benutzen kann, habe ich meinen Code umgeschrieben:
Java:
	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {

		final String fileName = "C:/my.zip";

		final ZipInputStream zipIs = new ZipInputStream(
				new BufferedInputStream(new FileInputStream(fileName)));

		ZipEntry currentEntry;
		while ((currentEntry = zipIs.getNextEntry()) != null) {

			System.out.println("*** " + currentEntry.getName());
		}

	}
Jetzt öffnet er wenigstens den Stream und in der while-Schleife zeigt er mir sogar den Namen des ersten Entrys an, aber auch dann wieder Exception:
Code:
Exception in thread "main" java.util.zip.ZipException: invalid compression method
	at java.util.zip.ZipInputStream.read(ZipInputStream.java:224)
	at java.util.zip.ZipInputStream.closeEntry(ZipInputStream.java:139)
	at java.util.zip.ZipInputStream.getNextEntry(ZipInputStream.java:117)
	at App.main(App.java:22)
Erzeugt Windoof denn tasächlich Zips mit einer compression method, die Java nicht kann ?!?
 
G

Gast2

Gast
Kann ich nicht bestätigen, dein Code funktioniert bei mir.

Die Zip Datei habe ich so erzeugt:
- Rechte Maustaste auf ne txt-Datei
-> Senden an
-> ZIP komprimierter Ordner

Code:
Windows 7 Professional

Code:
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)
 
N

nillehammer

Gast
Hallo EikeB,
danke fürs Testen. Meine Umgebung ist
Code:
Windows 7 Enterprise
Code:
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
Mit Senden an -> ZIP komprimierter Ordner geht's auch nicht.

Habe mir mit ZipEntry.getMethod() die verwendete compression Method des ersten Entrys anzeigen lassen, Ergebnis ist 9. Das ist laut Spezifikation (http://www.pkware.com/documents/casestudies/APPNOTE.TXT) Deflated. Für diese Method gibt es in Java wiederrum die Konstante 8. Deswegen fliegt die Exception. Habe aber keine Ahnung, wie die 9 zustande kommt. Ich installier mir jetzt mal ein richtiges Zip-Programm und arbeite damit weiter.
 
Zuletzt bearbeitet von einem Moderator:
N

nillehammer

Gast
So, die gleichen Daten mit 7zip gepackt. Compression-Method ist jetzt 8. Java ist zufrieden. Entweder ist Windows 7 Enterprise beknackt, oder unsere Admins haben irgendwas in der Registry verbogen, sodass Windows Method 9 benutzt. Egal...
 
W

Win7User

Gast
Sorry ... aber ich kann das Problem nicht nachvollziehen :

Java:
import java.io.*;
import java.util.*;
import java.util.zip.*;
public class ZipRead
{
	public static void main(String[] args) throws Exception
	{
		ZipFile zip=new ZipFile("test.zip");
		Enumeration<? extends ZipEntry> entries=zip.entries();
		while(entries.hasMoreElements())
		{
			ZipEntry entry=entries.nextElement();
			System.out.println(entry.getName());
		}
	}
}

Windows 7 Ultimate x64

Code:
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)

Zip-File mit "Rechtsklick -> Senden an -> ZIP" erstellt.

Konnte es mit Java ohne probleme lesen. Denke mal bei euch wird was "verstellt" sein.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R -jar der Windows-Registry hinzufügen Allgemeine Java-Themen 1
C jar File mehrfach aufrufen (als Windows Dienst) Allgemeine Java-Themen 5
izoards JAR als Windows Service mit Appache Procrun (prunsrv) Allgemeine Java-Themen 6
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
N iText keine Sonderzeichen und Umlaute unter Windows Allgemeine Java-Themen 13
MarekLanger Filebeat in Docker unter Windows Allgemeine Java-Themen 1
M Registry Autostart Eintrag mit Java erstellen (über Windows cmd) Allgemeine Java-Themen 7
S Java-Task-Management-Tool für Windows und Mac selber programmieren Allgemeine Java-Themen 4
M Console geht nicht auf (Windows 10) Allgemeine Java-Themen 3
M TomEE auf Windows Server 2016 installieren Allgemeine Java-Themen 4
Thallius Rätsel für Windows Profis Allgemeine Java-Themen 8
F Java Code ausführen direkt nach Anmelden in Windows Allgemeine Java-Themen 2
J jar Dateien unter Windows 7 mit spezifischer jdk öffnen Allgemeine Java-Themen 2
T Java Windows sounds erkennen Allgemeine Java-Themen 1
P Java als Windows Dienst Allgemeine Java-Themen 2
I GUI für kleine Pop-Ups unter Windows Allgemeine Java-Themen 1
H Änderung im maximalen heap space unter Windows 7 ?! Allgemeine Java-Themen 5
dereki2000 Windows Benachrichtigung erzeugen Allgemeine Java-Themen 2
Neumi5694 Task-Name unter Windows Allgemeine Java-Themen 4
M Checkliste mit erweiterbaren Einträgen, Baumstruktur, wie Windows Explorer Navigation Allgemeine Java-Themen 2
S Java OpenOffice Problem mit Windows-Benutzerwechsel Allgemeine Java-Themen 19
R JDK installieren JDK / Maven auf Windows 10 installieren Allgemeine Java-Themen 9
K jar-Datei lässt sich unter Windows nicht verwenden Allgemeine Java-Themen 3
Blender3D Java Swing Programm Windows 10 Autostart Problem Allgemeine Java-Themen 2
D Jsch nur für Windows? Allgemeine Java-Themen 2
X JDK installieren Weiß jemand, wie ich GCJ (WINDOWS) installieren und anwenden kann? Allgemeine Java-Themen 11
D JRE in .jar verpacken unter Windows Allgemeine Java-Themen 4
I Programm im Hintergrund bei Windows zur Steuerung der Tastatur nutzen Allgemeine Java-Themen 2
D Aktuell installierte Java Version auslesen unter Windows Allgemeine Java-Themen 5
S Executable Jar File startet nicht unter Windows 10 Allgemeine Java-Themen 3
C Windows RCP Application unter Linux bauen lassen Allgemeine Java-Themen 3
E Anwendung verhält sich unter Mac anders als Unter Windows. Allgemeine Java-Themen 4
S JNLP startet seit 1.8.0_31 sehr langsam + Windows-Systemverzeichnis Allgemeine Java-Themen 3
M Windows 98 - Mit welchem JDK (Version) kann noch Programm dafür erstellt werden Allgemeine Java-Themen 6
Tom299 Beliebiges Windows-Programm / Prozess in den Vordergrund bringen Allgemeine Java-Themen 4
D Konsoleneingabe ist in Windows CMD nicht sichtbar Allgemeine Java-Themen 4
P Effizientes Programmieren - oder Windows Autostart fürs Herunterfahren Allgemeine Java-Themen 11
O Zugriff auf Windows Zertifikatstore Allgemeine Java-Themen 2
F Windows Umlaute Allgemeine Java-Themen 15
T Windows-Kontextmenü Eintrag hinzufügen? Allgemeine Java-Themen 3
O Socket-Unterschiede zwischen Windows und Ubuntu Allgemeine Java-Themen 2
G Wie installiere ich javax-usb unter windows? Allgemeine Java-Themen 0
M Swing Windows und Ubuntu Allgemeine Java-Themen 4
H JFileChooser soll NUR Windows-Netzwerkumgebung anzeigen Allgemeine Java-Themen 2
L Windows CMD werte Parsen. Allgemeine Java-Themen 2
M Code läuft unter windows aber nicht unter Linux Allgemeine Java-Themen 6
HarleyDavidson Tomcat VS Windows Scheduled Task Allgemeine Java-Themen 4
T JNI: kein Zugriff auf VM in Callback-Methode eines Windows-Hooks Allgemeine Java-Themen 3
W Windows (Service) Hooking Allgemeine Java-Themen 8
M Java auf Linux und Windows Allgemeine Java-Themen 6
R Windows-Firewall lässt Java nicht durch Allgemeine Java-Themen 17
R Java-Progamm über Icon starten unter Windows Allgemeine Java-Themen 9
P Eclipse Unter Windows erstelle .jar unter Linux (Ubuntu) funktioniert nicht Allgemeine Java-Themen 5
R ZIP FileSystem unter Windows wirft exception Allgemeine Java-Themen 7
njans Windows Verknüpfung von Icon Allgemeine Java-Themen 2
P windows mit java bedienen Allgemeine Java-Themen 8
X Windows-Environment-Variable per jRegistryKey anpassen Allgemeine Java-Themen 6
P .Jar Datein Windows Konsole zugewiesen Allgemeine Java-Themen 3
C Encoding Problem Windows Allgemeine Java-Themen 9
L Input/Output ProcessBuilder und Windows - Konsole verbergen? Allgemeine Java-Themen 5
R Welches User-Verzeichnis wählen für Configurationsdateien - Windows Allgemeine Java-Themen 2
R Änderungen in einem Verzeichnis beobachten - Windows Allgemeine Java-Themen 3
A Nach Benutzerwechsel mit anderem Account in Windows anmelden Allgemeine Java-Themen 8
T Jar File läuft unter Windows aber nicht unter linux Allgemeine Java-Themen 10
B Windows Konsolenbefehle Allgemeine Java-Themen 3
Z Probleme bei Stringvergleichen (Windows/Linux) Allgemeine Java-Themen 10
B Windows Shutdown abfangen Allgemeine Java-Themen 10
E CMD Registry Key für Windows 7? Allgemeine Java-Themen 9
TiME-SPLiNTER vlcj und Windows Allgemeine Java-Themen 15
S Prozess der von anderem Prozess gestartet wurde beenden? (Windows Bildschirmtastatur) Allgemeine Java-Themen 4
G Input/Output URLDecoder.decode - Unterschiedliche Ergebnisse Windows / Linux Allgemeine Java-Themen 2
R Windows ermitteln ob Administratorrechte vorhanden Allgemeine Java-Themen 17
Y MenuBar -> Windows / Mac OS X Allgemeine Java-Themen 2
L Java Quellcode auf Windows 7 ausführen? Allgemeine Java-Themen 3
I Encoding Problem bei exec und Windows Allgemeine Java-Themen 2
R Windows - User Passwort ändern Allgemeine Java-Themen 2
F java prog als windows-dienst. Erfahrungen? Allgemeine Java-Themen 2
R Dateien vom Windows-Explorer zum Programm senden Allgemeine Java-Themen 21
H Standard Windows-Druck-Dialog Allgemeine Java-Themen 2
S Windows "öffnen mit..." Allgemeine Java-Themen 4
D Clipboard getSystemSelection() funktioniert unter Windows* nicht Allgemeine Java-Themen 3
M Nach Programmdurchlauf werden Zeichen falsch dargestellt + Anderes Verhalten unter Windows Allgemeine Java-Themen 6
P Windows Media Player starten / finden Allgemeine Java-Themen 2
D Windows-Konsole auslesen - Zeichenkodierung Allgemeine Java-Themen 4
J Path-Eintrag unter Windows 7 Allgemeine Java-Themen 11
Q .jar wird mit cmd gestartet - Zuordnung von Dateitypen ändern (Windows 7) Allgemeine Java-Themen 7
G jad JDK1.6 Windows 7 Allgemeine Java-Themen 2
Z Position/Größe von Windows-Fenstern ermitteln Allgemeine Java-Themen 12
Z Probleme mit Java unter Vista/ Windows 7 Allgemeine Java-Themen 12
O Jar-Datei auf Windows 98 Allgemeine Java-Themen 6
K Windows Fehlerkanal -> Ausgabe in Datei Allgemeine Java-Themen 6
M Runtime.getRuntime().exec(cmd); auf windows ... Allgemeine Java-Themen 2
P Runnable Jar File über Windows ausführbar doch über Linux nicht Allgemeine Java-Themen 8
A JavaVM Zeit Windows 7 Allgemeine Java-Themen 9
P USB Temperatursensor auslesen Windows Allgemeine Java-Themen 7
T Mac OS X <--> Windows XP Portierungsprobleme Allgemeine Java-Themen 7
G Textdatei einlesen unter Windows 7 Allgemeine Java-Themen 4
Benji0815 Verzeichnis wie im Windows Explorer in einem JTree anzeigen Allgemeine Java-Themen 6
P Die (Windows)MAC-Adresse vor 1.6 Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben