我如何强制 Java Web Start 到 运行 自签名 JNLP?

How can I force Java Web Start to run a self-signed JNLP?

我们正在开发一个使用 Java Web Start 的应用程序。

当我尝试启动我的 JNLP 文件时,我收到此警告:

"Location" (http://<IP>:port) 已添加到例外站点列表中。我原以为这本身就足以使 JNLP 运行.

不过,我在"Advanced"下也做过以下操作:

我只有一个 Java 版本 - 它是 Java 1.8.0_91,32 位。

我还需要做些什么来制作我的 JNLP 运行?

Java 安全是一件需要努力应对的有趣小事。

将您的 JavaWS 应用程序站点添加到 Java 安全例外列表。你是说你已经做到了,但你是否也标记了你的 JNLP 文件以表明它来自哪个站点?

本质上,jnlp 文件只是一个 XML 文件,除非它说明它来自哪里,否则 java 可能无法确定它是否来自受信任的站点。

你在JNLP中有类似这样的标签吗?

<jnlp href="someWebstartApp.jnlp" spec="1.0+" codebase="http://myserver.com/" xmlns:jfx="http://javafx.com">

特别是 href(代码库中 jnlp 文件的名称)和代码库(可以找到 jnlp 文件和 jars 的位置)的位。

或者,您可以尝试直接从命令行调用 javaws:

javaws http:/myserver.com/someWebstartApp.jnlp

这将使 Java 获取 JNLP 文件本身,而不是从浏览器启动过程,后者可能无法告诉 Java jnlp 来自哪个 URL。

问题是清单中缺少 Permissions 属性,因此在 Java 1.8 中没有警告就被阻止了。如果您 运行 Java 1.7.

会出现警告