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

时间:2016-05-13 15:08:09

标签: java windows security java-web-start

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

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

&#34;位置&#34; (http://<IP>:port)已添加到“例外站点列表”中。我本以为这本身足以使JNLP运行。

但是,我还在&#34; Advanced&#34;:

下完成了以下操作

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

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

2 个答案:

答案 0 :(得分:1)

问题是清单中缺少Permissions属性,因此在Java 1.8中被阻止而没有警告。如果您运行Java 1.7,则会出现警告。

答案 1 :(得分:0)

Java安全性是一个有趣的小东西,必须与之搏斗。

将JavaWS应用程序的站点添加到Java Security例外列表中。你说你已经这样做了,但你是否也标记了你的JNLP文件以指出它来自哪个网站?

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

你在JNLP中有一个类似的标签吗?

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

具体来说,href(代码库中jnlp文件的名称)和代码库(可以找到jnlp文件和jar)的位。

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

javaws http:/myserver.com/someWebstartApp.jnlp

这会让Java抓取JNLP文件本身,而不是浏览器的启动过程,这可能无法告诉Java jnlp来自哪个URL。