Java 文件检查权限

Java 文件检查权限,java,java-7,Java,Java 7,我试图使用以下代码段检查给定文件的权限 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 (A

我试图使用以下代码段检查给定文件的权限

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);
    }
因此,当我运行它时,它会给我以下异常:

java.security.AccessControlException:拒绝访问(“java.io.FilePermission”E:/test.txt“read”)


文件上的所有权限都已启用,但它会引发“拒绝访问”异常。

使用以下代码段检查您是否可以读取该文件:

boolean canRead = new java.io.File("E:/test.txt").canRead();
File.canRead
检查SecurityManager(如果有)是否允许读取文件,以及您是否在文件系统中具有读取权限


仅当存在
AccessController.checkPermission(fp)
表示权限的安全上下文时,使用
AccessController.checkPermission(fp)
才会引发异常。当您像示例中那样简单地启动Java应用程序时,情况并非如此。

可能会定期打开文件并使用file.canRead()?有什么JVM安全策略?是否可以尝试使用
E:\test.text
?可能重复的