ZIP FileSystem unter Windows wirft exception

rheiger

Mitglied
Ich wollte mal das neue Feature des ZIP FileSystems von Java7 testen. Interessanterweise hat das unter Linux perfekt funktioniert, hingegen unter Windows wirft das Programm eine Exception:

Das Programm:

[JAVA=1]
package testing.ziptest;

import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Main {

public static void main(String[] args) throws IOException {
String zipFileName = "test.zip";
if (args != null && args.length > 0) {
zipFileName = args[0];
}
FileSystem fs = FileSystems.newFileSystem(Paths.get(zipFileName), null);
Iterable<Path> roots = fs.getRootDirectories();
for (Path dir : roots) {
dirWalk(dir, 0);
}
}

private static void dirWalk(Path dir, int level) throws IOException {
if (dir == null) {
return;
}
System.out.println(" " + level + " :: " + "'" + dir.toString() + "'");
if (Files.notExists(dir)) {
return;
}
if (Files.isDirectory(dir)) {
DirectoryStream<Path> ds = Files.newDirectoryStream(dir);
for (Path child : ds) {
dirWalk(child, level + 1);
}
}
}
}
[/code]

Hier das Resultat unter Windows7:
Code:
c:\temp>java -jar ziptest.jar ziptest.jar
Exception in thread "main" java.io.IOException: Unable to get effective rights from ACL: Der Vorgang wurde erfolgreich beendet.

        at sun.nio.fs.WindowsFileSystemProvider.getEffectiveAccess(Unknown Source)
        at sun.nio.fs.WindowsFileSystemProvider.checkAccess(Unknown Source)
        at com.sun.nio.zipfs.ZipFileSystem.<init>(ZipFileSystem.java:124)
        at com.sun.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:139)
        at java.nio.file.FileSystems.newFileSystem(Unknown Source)
        at testing.ziptest.Main.main(Main.java:18)

c:\temp>

Unter Linux läuft's bestens:
Code:
pcsg:~/JavaTests/zipfile/dist $ java -jar ziptest.jar ziptest.jar
 0 :: '/'
 1 :: '/testing/'
 2 :: '/testing/ziptest/'
 3 :: '/testing/ziptest/Main.class'
 1 :: '/META-INF/'
 2 :: '/META-INF/MANIFEST.MF'
pcsg:~/JavaTests/zipfile/dist $

Ist das ein bekanntes Problem von Windows7? Könnte das etwas mit der Spracheinstellung von Windows zu tun haben? Eigenartigerweise habe ich nirgends einen Hinweis gefunden, dass hier Probleme vorliegen könnten. Dasselbe Resultat finde ich auch, wenn ich das entsprechende Demo Programm von ORACLE aus dem JDK teste.

Ich bin für jeden Hinweis sehr dankbar!
 
Zuletzt bearbeitet:
Unable to get effective rights from ACL
Da spielt dir die Rechteverwaltung von Windows rein. Java scheint da irgendwelche Rechte nicht zu bekommen. Versuch das ganze mal in deinem Userordner oder führe das als Admin aus.
 
Danke. Hatte auch schon sowas vermutet. Im Heimordner ausgeführt erhalte ich dasselbe Resultat, also die Exception. Wie ich unter Windows als Administrator eine Shell kriege weiss ich leider nicht. Mein User hat allerdings Administrator-Status. Eigentlich ist die Fehlermeldung recht widersinning. Denn offenbar konnte das Programm durch die jvm ja geladen werden. Da wird das Betriebssystem doch auch schon die ACLs prüfen wollen...
 
Danke für den Hinweis. Konnte nun cmd.exe als Administrator ausführen. Habe aber leider immer noch die identische Fehlermeldung (siehe Printscreen im Anhang). Es ist verhext.
 

Anhänge

  • printscreen.PNG
    printscreen.PNG
    54,6 KB · Aufrufe: 46
Jetzt verstehe ich die Welt nicht mehr. Daselbe Programm auf einem dritten PC, ebenfalls mit Windows7 ultimate, funktioniert einwandfrei. Auf den anderen beiden nicht. OK, nun bin ich gefordert das Setup der verschiedenen Systeme sorgfältig zu überprüfen. Falls ich was herausfinde werde ich das hier nachliefern.

Besten Dank auf jeden Fall. Ich werde das Problem auf "gelöst" setzen.
 
Wow! Ich habe die Ursache reproduzierbar gefunden :toll:! Sowas blödes auch.

Folgendes ist passiert: Ich habe die Angewohnheit meine Systeme
Code:
englisch
aufzusetzen. Der von mir genutzte User hatte allerdings als Anzeigesprache
Code:
deutsch
eingestellt. Der andere Rechner auf dem es nicht funktionierte war gerade andersrum, also Anmeldefenster
Code:
deutsch
und Anzeigesprache
Code:
englisch
.

Es funktioniert sowohl
Code:
englisch
, als auch
Code:
deutsch
korrekt, vorausgesetzt Anmeldebildschirm und Anzeigesprache sind gleich konfiguriert. :applaus:

Sowas ist in keinem Manual zu finden und wohl auch nicht zu googlen...
 
Ich habe dasselbe Problem.
Allerdings sind beide Systeme Windows 7 Enterprise Deutsch und auch die Anzeigesprache ist bei beiden Deutsch.
 

Neue Themen


Zurück
Oben