2012-04-15 115 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