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