我正在阅读Java Tutorial安全跟踪,但我仍然坚持“查看策略文件效果”课程(See the Policy File Effects lesson link。我可以让方法1工作。这让我觉得我没有' t错误我的策略和签名的jar文件。方法2,编辑java.security文件,无效。
我正在使用Java 7(安装在C:\ Program Files \ Java \ jdk1.7.0_67)上使用Windows 7。我没有.java.policy文件(虽然我确实试过这个)。
这是例外
$ java -Djava.security.manager -cp sCount.jar Count C:/tstsecdata/data
Exception in thread "main" java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\tstsecdata\data" "read")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkRead(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at Count.main(Count.java:48)
我尝试了什么。
我注意到安装了2个jre。一个是Java \ jdk1.7.0_61 \ jre。另一个是Java \ jre7。我在Oracle JDK installs two JREs?找到了解释。所以我编辑了两个java.security文件,并在每个文件中添加了以下行(在policy.url.2条目之后)。
policy.url.3 =文件:/ C:/ tstsec / exampleraypolicy
FWIW,这是政策文件:
/* AUTOMATICALLY GENERATED ON Tue Jun 02 09:39:05 EDT 2015*/
/* DO NOT EDIT */
keystore "file:/C:/tstsec/exampleraystore", "jks";
grant signedBy "susan" {
permission java.io.FilePermission "C:\\tstsecdata\\*", "read";
};
我的工作站由IT部门管理,尽管我有管理员权限。是否有一些Windows 7政策搞砸了我?