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