自JDK 1.7以来,Java Web Start已经破产

Rob*_*etz 8 java jnlp jar java-web-start java-7

继承人的答案:它似乎(通过我们的测试)是Java 7的Web Start的需要您的主机使用SSL证书的服务器上你的资源.您的证书不必签名,但未签名的证书将提示客户端他们可以忽略的信任消息.有关详细信息,请参阅以下答案

我们有一个内部应用程序,我们已经使用多年了.为了使这个应用程序的维护更容易,我们没有向员工提供可安装的应用程序版本,我们只是给他们一个.jnlp的链接,并使用JWS在他们的盒子上启动它.到目前为止,这种方法效果很好,但只要我们的任何员工更新到Java 7,JWS系统就会停止在他们的计算机上运行.我们已经检查,重新检查,甚至验证了我们的JNLP模式,这很好,这使我们认为Web Start本身存在问题.

当用户单击jnlp文件时,它会启动Java 7启动屏幕,然后开始下载我们需要的资源.从那里它只是挂起,JWS启动应用程序上的进度条保持在零百分比.

有任何想法吗?这很大程度上是因为他们升级到了Java 7.同时我们建议所有员工继续使用Java 6,直到另行通知为止.我们所有的代码都已正确签名.

这是我们JNLP的副本:

<?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>
Run Code Online (Sandbox Code Playgroud)

grw*_*grw 12

当人们开始在他们的Windows机器上安装Java 7时,我们最近遇到了这个问题.我们在三个不同的Linux服务器上有jar文件的实例,发现我们可以从其中两个下载应用程序,一个是远程的,一个是本地的,但不是第三个,也是本地的服务器.

关键在于jnlp文件中的代码库规范.为了将jar文件成功下载到运行Java 7的Windows框中,代码库必须指定"https:..."而不是"http:...".

上面引用的远程服务器设置为安全服务器,因此专门设置为https.这两个本地服务器都没有安全地设置,但是那个工作的服务器碰巧在代码库规范中使用了"https:".更改另一台服务器上的jnlp也可以正常工作.(我们的jnlp是模板化的,并且针对源代码控制之外的每次安装进行了修改,因此存在差异的可能性.)

您可能需要删除Java控制面板中列出的任何非工作应用程序以与服务器上的新jnlp同步:进入Java控制面板的常规选项卡(可从Windows控制面板获得),按"查看". .."临时Internet文件"下的"按钮",并删除任何不工作的应用程序.

  • 这完全是问题所在.我们一直在寻找这个解决方案,并没有标记他们在Java 7下载它的资源时改变了Web开始需要SSL.希望其他人会看到这个并立即获得解决方案,谢谢. (2认同)