如何授予jar文件执行另一个jar文件

时间:2012-02-02 11:15:46

标签: java jar policy grant

我想使用我项目中的策略文件执行一个jar文件。我的政策文件是:

*grant codeBase "file:///D:/xx/yy/zz/-"{
  permission java.io.FilePermission 
    "D:/aa/bb/test.jar", "read, write, delete, execute";
};*

我的项目在D:/ xx / yy / zz /文件夹下,我想在这个项目中执行test.jar但是我有一个错误:

访问被拒绝(java.io.FilePermission<> execute)

如果我像这样更改策略文件,那没关系:

*grant codeBase "file:///D:/xx/yy/zz/-"{
  permission java.io.FilePermission 
    "<<ALL FILES>>", "read, write, delete, execute";
};*

但我不想对我的项目给予所有许可。

并且在项目中我也设置了这样的策略文件:

String path =“D:\ aa \ bb \ test.jar”;

     System.setProperty("java.security.policy","C:\\policy\\"+"test.policy");

     System.setSecurityManager(new SecurityManager());  

有没有人可以对这种情况说些什么? 感谢...

2 个答案:

答案 0 :(得分:1)

我认为此"D:/aa/bb/test.jar"应为"D:\\aa\\bb\\test.jar"

点击此处查看更多信息http://docs.oracle.com/javase/7/docs/technotes/guides/security/PolicyFiles.html

答案 1 :(得分:0)

它看起来更像是文件系统安全问题,而不是java安全异常,你使用的是Windows还是Linux? 你使用什么样的文件系统? ext2 / 3/4或NFTS或fat32?
最重要的是,您是否使用管理员权限运行程序,这可能是授予某些文件执行权限所必需的。