2010-05-23 84 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