2010-05-23 130 views

回答

4

如果你想,當有人啓動使用java -jar您的jar添加了-D,那是不可能的,因爲這是不可能指定罐內JVM選項:

Can I set Java max heap size for running from a jar file?

這就是說,如果您正在控制流程,您可以使用java.security.Policy.setPolicy自行管理策略對象。

+0

在我的代碼中得到了這個: if(System.getSecurityManager()== null) System.setSecurityManager(new RMISecurityManager()); } 我應該在那裏添加它嗎? – 2010-05-23 23:43:44

+0

我必須使用外部策略文件嗎?我可以把它放在代碼中嗎? – 2010-05-23 23:57:35

+0

不,沒有公共API(我知道)將策略文件轉換爲策略對象。您需要繼承java.security.Policy並正確實現getPermissions(CodeSource)以授予相關代碼源的權限。 – 2010-05-24 01:25:44

0

您可以看看如何使用策略文件here。如果您使用的是NetBeans或其他一些IDE,你應該能夠添加

-Djava.security.policy = myPolicyFile

作爲一個選項,你的虛擬機,這通常是發現某處內項目的屬性。

+0

是的,我知道 - 已經在NetBeans中獲得它,但問題是在jar中獲得相同的效果。 – 2010-05-23 23:42:05