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
?可能重复的