安全策略文件和jar

时间:2012-04-15 14:53:20

标签: java security rmi

我有RMI应用程序,所以我需要使用策略文件。

我的政策文件很简单(conf.txt):

grant {
    permission java.security.AllPermission;
};

从eclipse运行我的应用程序没有问题。我已将-Djava.security.policy = conf.txt添加到VM参数中。

我想要做的是构建一个jar文件。我把它作为来自eclipse的Runnable JAR文件,我在运行它时遇到了一些问题。我尝试像这样运行它:

java -Djava.security.policy=C:\Users\myuser\proj\conf.txt -jar C:\Users\myuser\proj\proj.jar

我得到与没有-Djava.security.policy选项相同的结果。

我的代码:

System.setProperty("java.security.policy", "./conf.txt");
...
if (System.getSecurityManager() == null) {
            System.setSecurityManager(new SecurityManager());
        }

我怎样才能使这个工作?如果我不必仅传递-Djava.security.policy,那就更好了。

java -jar myprog.jar

1 个答案:

答案 0 :(得分:3)

对于初学者,请从代码中删除System.setProperty("java.security.policy", "./conf.txt");。它覆盖了您在命令行中设置的值,并且其中包含完整路径并且可以工作。在任何情况下,如果代码中有System.setProperty,则不会测试该命令行的效果。