自JDK1.7以来,Java Web开始崩溃
答案如下: 通过我们的测试,Java7WebStart似乎要求您使用SSL证书在服务器上托管资源。您的证书不必签名,但未签名的证书将向客户端提示一条信任消息,客户端可以忽略该消息。 有关更多详细信息,请参见下面的答案 我们有一个内部应用程序,我们已经使用多年了。为了使该应用程序的维护更容易,我们没有向我们的员工提供该应用程序的可安装版本,我们只是给他们一个指向.jnlp的链接,并使用JWS在他们的机器上启动它。到目前为止,这已经非常有效了,但是一旦我们的任何员工更新到Java 7,JWS系统就会停止在他们的计算机上工作。我们已经检查、重新检查,甚至验证了我们的JNLP模式,它很好,这让我们认为WebStart本身存在问题 当用户单击jnlp文件时,它会启动Java7初始屏幕,然后开始下载我们需要的资源。从那里,它只是挂起,JWS启动应用程序上的进度条保持在0% 有什么想法吗?这在很大程度上是因为他们升级到了Java7。同时,我们建议所有员工在接到进一步通知之前,继续使用Java 6。我们所有的代码都已正确签名 这是我们JNLP的副本:自JDK1.7以来,Java Web开始崩溃,java,jar,jnlp,java-7,java-web-start,Java,Jar,Jnlp,Java 7,Java Web Start,答案如下: 通过我们的测试,Java7WebStart似乎要求您使用SSL证书在服务器上托管资源。您的证书不必签名,但未签名的证书将向客户端提示一条信任消息,客户端可以忽略该消息。 有关更多详细信息,请参见下面的答案 我们有一个内部应用程序,我们已经使用多年了。为了使该应用程序的维护更容易,我们没有向我们的员工提供该应用程序的可安装版本,我们只是给他们一个指向.jnlp的链接,并使用JWS在他们的机器上启动它。到目前为止,这已经非常有效了,但是一旦我们的任何员工更新到Java 7,JWS系统就会
<?xml version="1.0" encoding="utf-8"?>
<jnlp
spec="1.5+"
codebase="http://peiportal/updater">
<information>
<title>PEI Portal Application</title>
<vendor>Petz Enterprises, Inc.</vendor>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<resources>
<jar href="PEIPortalLauncher.jar"/>
</resources>
<application-desc/>
</jnlp>
PEI门户应用程序
佩茨企业公司。
最近,当人们开始在Windows设备上安装Java 7时,我们遇到了这个问题。我们在三个不同的linux服务器上有jar文件的实例,发现我们可以从其中两个服务器下载应用程序,一个是远程服务器,一个是本地服务器,但第三个也是本地服务器
密钥位于jnlp文件中的代码库规范中。为了将jar文件成功下载到运行Java7的Windows设备上,代码库必须指定“https:…”而不是“http:…”
上面提到的远程服务器设置为安全服务器,因此专门使用https设置。这两台本地服务器都没有安全设置,但正常工作的服务器恰好在代码库规范中使用了“https:”。在另一台服务器上更改jnlp也可以使其正常工作。(我们的jnlp是模板化的,并且针对源代码管理之外的每个安装都进行了修改,因此可能存在差异。)
您可能需要删除Java控制面板中列出的任何非工作应用程序,以便与服务器上的新jnlp同步:进入Java控制面板的“常规”选项卡(可从Windows控制面板获得),按“临时Internet文件”下的“查看…”按钮,并删除所有不工作的应用程序。虽然grw的答案绝对正确,但我通过在JNLP文件中强制使用1.6解决了这个问题:
<resources>
- <j2se version="1.6+" java-vm-args="-Xmx256M"/>
+ <j2se version="1.6" java-vm-args="-Xmx256M"/>
-
+
使用上面补丁中的第二行,不使用加号。这将迫使Java7使用Java6JRE下载这些文件,这样就可以工作了
当用户单击jnlp文件时,它会启动Java7初始屏幕,然后开始下载我们需要的资源。从那里,它只是挂起,JWS启动应用程序上的进度条保持在0%
FWIW,这也可能是由Webstart中的死锁引起的,该死锁仅在7u10中解决(到目前为止仍处于测试阶段)。看见死锁似乎出现在GUI线程(例如Java控制台)和jar下载线程之间。对于无法访问deepc提供的kenai.com链接的任何人: 提到的bug是 我在Java bug DB中发现的另一个可能通过描述匹配的bug可能是 希望JavaWebStart能在u10上再次通过HTTP工作
更新:在我们的案例中,AVG antivirus是原因。在AVG设置中,禁用“Online Shield”和“Surf Shield”,Java 7、Windows 7和普通HTTP的组合确实有效。或升级至最新的AVG 2012版本。Cf..在1.7更新后,我们也遇到了类似的问题,但我们能够通过转义href的.jnlp文件中的字符来解决,即分别将href值中的问号和符号改为?和& href=“appname.jnlp?protocol=http&host=xx.xx.xx.xx&port=xx”
如果在1.7更新后删除1.6,并将spec值保持为“1.6+”,这种方法会更安全一些。我们也遇到了这个问题,但修复方法是Apache配置文件中的ServerName和AliasName包含端口号。iedomain.com:443。当Java7比较服务器名时,它不匹配,问题就出现了。通过从名称中删除:443,一切都很好 您是否尝试过在代码库中完全限定主机名(peiportal)?这可能不是那么简单,只是一个想法。祝贺你迄今为止的良好体验。并不是每个人都对webstart记忆犹新。请从webstart窗口发布异常。您是否尝试过
spec=“6.0+”
?您应该添加一个属性href=”http://peiportal/updater/path 到jnlp文件“
到jnlp元素。j2se
和application desc
元素也丢失。我认为1.5规范已经被弃用了。另外请注意:JavaSE7还没有为最终用户发布,只是为开发人员发布:请确保使用检查JNLP。目前,将版本字符串(在缺少的j2se
元素中)指定为1.6*
。有关更多详细信息,请参阅。这正是问题所在。我们一直在到处寻找这个解决方案,没有任何地方标明他们在下载Java7中的资源时将WebStart更改为需要SSL。希望其他人会看到这一点,并得到解决方案,谢谢你。我刚刚测试了这个,它似乎是可行的,但我想指出的警告,你