2012-04-15 174 views
4

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

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

grant { 
    permission java.security.AllPermission; 
}; 

我跑从日食我的应用程序没有问题。我在VM参数中添加了:-Djava.security.policy = conf.txt。

我想要做的是构建一个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()); 
     } 

我怎样才能让这方面的工作?

java -jar myprog.jar 
+1

这里有什么问题?你在代码中设置策略,所以你不需要命令行上的参数。运行它与-Djava.security.debug =访问,未能看到究竟发生了什么。 – EJP 2012-04-15 22:25:41

回答

2

对于初学者来说,从你的代码中删除System.setProperty("java.security.policy", "./conf.txt");:如果我没有通过-Djava.security.policy只是它甚至会更好。它覆盖了你在命令行中设置的值,并且它具有完整的路径并且可以工作。在任何情况下,如果代码中有System.setProperty,则不会测试该命令行的效果。

+0

是的,就是这样,我后来想到了,谢谢。我没有太多的Java经验,我只需要完成一个项目,谢谢:) – wisent 2012-04-16 11:14:24