安全策略文件和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 ,则不会测试该命令行的效果。