2015-09-01 20 views
5

Aşağıdaki kod snippet'ini kullanarak verilen dosyanın izini kontrol etmeye çalışıyorum.Dosya denetimi izni

java.security.AccessControlException: access denied ("java.io.FilePermission" "E:/test.txt" "read")

Tüm hakları dosya üzerinde etkinleştirmek vardır ama bana erişim istisna engellendi atar: Bunu çalıştırdığınızda

public static void main(String[] args) { 
    try{ 
     FilePermission fp = new FilePermission("E:/test.txt", "read"); 
     AccessController.checkPermission(fp); 
     System.out.println("Ok to open socket"); 
    } catch (AccessControlException ace) { 
     System.out.println(ace); 
    } 

Yani, bana aşağıdaki istisna verir.

+0

Dosyayı açabilir ve dosyayı file.canRead() kullanabilir miyim? – alpert

+0

JVM güvenlik ilkesi ne durumda? –

+0

"E: \ test.text" ile deneyebilir misiniz? – KDM

cevap

4

dosyayı okuyabilir kontrol etmek şu pasajı kullanın: hak okudum if (eğer varsa)

boolean canRead = new java.io.File("E:/test.txt").canRead(); 

File.canRead denetler SecurityManager eğer dosyayı ve okumasına olanak sağlar dosya sistemi.

AccessController.checkPermission(fp) kullanımı, 'un anlamına geldiği bir güvenlik içeriği varsa, yalnızca bir istisna alamaz. Örneğinizde olduğu gibi bir Java uygulamasını başlattığınızda durum böyle değildir.