【问题标题】:How do I pass a system property to Java via recent version of java webstart?如何通过最新版本的 java webstart 将系统属性传递给 Java?
【发布时间】:2015-02-09 14:00:22
【问题描述】:

在我的 Linux 机器上使用较旧的 javaws,我可以通过 javaws 将系统属性传递给 Java,例如

javaws -J-Dsome.key=some.value http://some.jnlp

但是,在我的 Mac 上使用较新版本的 javaws 似乎不起作用。 “-Dsome.key=some.value”没有传递给java进程(查看javaws启动的java进程,根本没有-D选项)。但是,传递其他 Java 选项没有问题,例如。

javaws -J-verbose:gc http://some.jnlp

在 Linux 和 Mac 上都可以正常工作(我可以在 javaws 启动的 java 进程中看到 -verbose:gc 选项正常)。

有人有什么想法吗?是安全设置吗?这是 Mac 上 javaws 的错误吗?

【问题讨论】:

    标签: java java-web-start


    【解决方案1】:

    您可以通过 Java 控制面板执行此操作。 转到 Java 控制面板 > Java > 查看..

    然后在“运行时参数”下键入-Dsome.key=some.value。

    编辑: 或者,您可以确保您的参数以“jnlp”开头。比如 jnlp.some.key。这样做的原因是,由于 java 中的新安全限制,除非您签署 jnlp 文件(通过 jar 文件清单完成)或以“jnlp”开头,否则不允许传递参数。或“javaws”。

    【讨论】:

    • 我想通过命令行以编程方式更改系统属性,因为我想为不同的 javaws 调用提供不同的值。
    • 你说的可能是安全限制。我知道在 jnlp 中你不能传递属性,除非属性以 jnlp 开头。 (来源:stackoverflow.com/questions/19400725/…)。也许这个限制是除此之外的。
    • 成功了!将我的密钥更改为 jnlp.some.key 允许我通过命令行设置它。请更改您的答案以匹配,我会将其标记为正确。
    • 我编辑了问题以更好地反映问题。这不是关于 mac 与 Linux,而是关于 javaws 的新旧版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多