我正在尝试使用以下代码片段检查给定文件的权限.
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);
}
Run Code Online (Sandbox Code Playgroud)
所以当我运行它时,它会给我以下异常:
java.security.AccessControlException: access denied ("java.io.FilePermission" "E:/test.txt" "read")
所有权限都在文件中启用,但它会抛出访问被拒绝的异常.
使用以下代码段检查您是否可以读取文件:
boolean canRead = new java.io.File("E:/test.txt").canRead();
Run Code Online (Sandbox Code Playgroud)
File.canRead检查 SecurityManager(如果有)是否允许读取文件,以及您是否在文件系统中具有读取权限。
AccessController.checkPermission(fp)如果存在暗示许可的安全上下文,Using只会不会抛出异常。当您像示例中那样简单地启动 Java 应用程序时,情况并非如此。
| 归档时间: |
|
| 查看次数: |
221 次 |
| 最近记录: |