如何通过最新版本的 java webstart 将系统 属性 传递给 Java?

How do I pass a system property to Java via recent version of java webstart?

在我的 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 控制面板 > Java > 查看..

然后在"Runtime Parameters"下输入-Dsome.key=some.value。

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