【问题标题】:How to add VM options to jar?如何将VM选项添加到jar?
【发布时间】:2011-02-23 01:07:47
【问题描述】:

我需要添加 -Djava.security.policy=myPolicyFile 以便我的 RMI jar 可以工作。还是有其他方法可以让它运行?

【问题讨论】:

    标签: java jar virtual-machine options executable-jar


    【解决方案1】:

    如果您想在有人使用java -jar 启动您的 jar 时添加 -D,这是不可能的,因为无法在 jar 中指定 JVM 选项:

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

    也就是说,如果您可以控制流程,则可以使用 java.security.Policy.setPolicy 自己管理策略对象。

    【讨论】:

    • 在我的代码中得到了这个: if (System.getSecurityManager() == null) { System.setSecurityManager(new RMISecurityManager());我应该在那里添加它吗?
    • 我必须使用外部策略文件吗?我可以把它放在代码中吗?
    • 不,没有用于将策略文件转换为策略对象的公共 API(据我所知)。您需要继承 java.security.Policy 并正确实现 getPermissions(CodeSource) 以授予相关代码源的权限。
    【解决方案2】:

    您可以查看here,了解如何使用策略文件。如果您使用的是 netbeans 或其他 IDE,您应该可以添加

    -Djava.security.policy=myPolicyFile

    作为 VM 的一个选项,通常可以在项目属性中的某个位置找到。

    【讨论】:

    • 是的,我知道 - 已经在 netbeans 中得到它,但问题是在 jar 中获得相同的效果。
    猜你喜欢
    • 1970-01-01
    • 2019-05-09
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 2012-06-12
    • 2022-01-23
    • 2012-06-28
    • 2023-03-18
    相关资源
    最近更新 更多