1Danke
ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
327
327
EMPFEHLEN
-
Hallo,
kann mir jemand sagen warum folgender Code immere eine AccessControlException mit "Access denied" wirft?
Ich habe definitiv Schreibrechte auf diese Verzeichnis! Laut Java-Api sollte dann einfach nichts geschehen.Code java:1
AccessController.checkPermission(new FilePermission("D:\\test\\", "read,write"));
Ich bin ratlos... Kann mir jemand erklären, weshalb an der Stelle IMMER die AccessControllException geworfen wird?
Vorab, das File per canWrite() zu checken genügt nicht. Darüber wird nur abgedeckt, ob das Objekt einen Schreibschutz hat oder nicht, nicht aber die eigentlichen Schreibrechte auf OS-Ebene.
GrüßeGeändert von fr3ed (08.06.11 um 15:30 Uhr)
-
08.06.11 15:22 #2
- Registriert seit
- Feb 2009
- Beiträge
- 193
Das erste was mir auffällt sind die Backslashes. In Java kannst du (auch unter Windows) ganze normale Shlashs verwenden. dann musst du auch nicht escapen. Das löst zwar dein Problem nicht könnte aber dennoch hilfreich sein.
-
Naja, dem Compiler ist es herzlich egal ob da escapede Backslashes als Separatoren stehen oder normale Slashes. Mit meinem Problem hat das wirklich nichts zu tun.
Geändert von fr3ed (08.06.11 um 15:28 Uhr)
-
Siehe http://java.sun.com/javame/reference...ontroller.htmlIf a requested access is allowed, checkPermission returns quietly. If denied, an AccessControlException is thrown. AccessControlException can also be thrown if the requested permission is of an incorrect type or contains an invalid value. Such information is given whenever possible. Suppose the current thread traversed m callers, in the order of caller 1 to caller 2 to caller m. Then caller m invoked the checkPermission method. The checkPermission method determines whether access is granted or denied based on the following algorithm:
Ohne mich jetzt groß damit beschäftigt zu haben, bist du dir sicher das du die Rechte mit "read,write" prüfen kannst?
Hast du es mal nur mit "read" bzw. "write" probiert?Wenn dir mein Beitrag hilfreich war darfst du gerne Danke klicken! :)
watch my blog @ websocialist.blogspot.com
-
Japp, hab es auch schon nur mit write und read probiert. Auch mit der zugehörigen Konstante
. Jeder der Fälle wirft besagte Exception.Code java:1
SecurityConstants.FILE_WRITE_ACTION
-
Nun gut ... da habe ich wohl zu Anfang den Gedanken nicht zu Ende gedacht und mich von dem Namen der Funktion verleiten lassen.
Es wird die policy Datei gecheckt und nicht generell auf das Dateisystem.
Da hätte ich zu Anfang genauer lesen sollen.
-
08.06.11 16:47 #7
- Registriert seit
- Aug 2005
- Ort
- Karlsruhe (Baden-Württemberg)
- Beiträge
- 905
So ein Check gibt es leider bei Java 6 noch nicht afaik. Siehe zB http://stackoverflow.com/questions/4...tory-with-java
In Java 7 (diesen Sommer) gibt es eine viel bessere IO-API, wo man so etwas dann hoffentlich prüfen kann. (attributes)Wäre super wenn ihr euren Code in dieser Form einfügt:
[java]System.out.println("Hello World");[/java]Code java:1
System.out.println("Hello World");
Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
Blog: http://javaeffective.wordpress.com/
Ähnliche Themen
-
Neues FileSystem API in Java 7
Von Thomas Darimont im Forum JavaAntworten: 0Letzter Beitrag: 11.03.09, 00:49 -
Java generics: generischen Typ ermitteln?
Von DarthShader im Forum JavaAntworten: 10Letzter Beitrag: 16.04.08, 07:43 -
Via Java Reflection Methoden-Parameter-Bezeichnung ermitteln
Von DarthShader im Forum JavaAntworten: 2Letzter Beitrag: 31.12.07, 20:51 -
Tatsächliche Objektgrösse im Bild (mit Java) ermitteln
Von cengizhdde im Forum JavaAntworten: 2Letzter Beitrag: 06.06.07, 16:21 -
Java Version ermitteln
Von Luixx im Forum JavaAntworten: 2Letzter Beitrag: 21.09.05, 14:15





Zitieren
Login





