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

4

我希望能够使用项目中的策略文件来执行一个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());  

有人能对这种情况发表意见吗?谢谢...


你正在使用Windows文件系统吗? - Jaec
2个回答

1

0

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


我的问题有点变化:我意识到它是关于Java命令的。我的代码是:ProcessBuilder pb = new ProcessBuilder(cmdList); process = pb.start(); cmdList类似于"java", "-jar", path。在start函数中,有一个checkexec()安全管理器控制。异常就是从那里抛出的。 - mst

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接