您的位置:首页 > 编程语言 > Java开发

Java权限基础

2016-01-07 11:39 405 查看
Java权限控制器是什么鬼?

首先需要一个权限文件。

这里使用到一个命令行工具policytool。这个在JDK bin目录下面。

举个例子,以下代码默认是可以运行的

public class Main {



public static void main(String[] args) {

System.out.println(System.getProperty("user.home"));

}



}

但是我加上严格权限参数则不能运行。

-Djava.security.manager

加上这个之后,就是开启权限机制,就会报错。

Exception in thread "main" java.security.AccessControlException: access denied ("java.util.PropertyPermission" "user.home" "read")

at java.security.AccessControlContext.checkPermission(AccessControlContext.java:457)

at java.security.AccessController.checkPermission(AccessController.java:884)

at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)

at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1294)

at java.lang.System.getProperty(System.java:714)

at permission.Main.main(Main.java:9)

那么怎样才能不报错,怎样才能给这个权限呢?

我使用policytool打开默认的权限文件。我的电脑是位于这个位置。

C:\Program Files\Java\jdk1.8.0_20\jre\lib\security\java.security

我打开之后是这个样子的:




那么现在就加上权限。




再次运行就有了权限了。打印结果:

C:\Users\Administrator。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: