【问题标题】:Java Web Start Offline mode not possible with JRE 8u171JRE 8u171 无法使用 Java Web Start 离线模式
【发布时间】:2018-10-08 02:10:40
【问题描述】:

还有人使用 Java Web Start 吗?好吧,我当然必须这样做。

我有一个需要在线和离线模式下运行的应用程序。在线获取更新,但实际用例离线。

直到 jre8u161 都可以正常工作。但是在当前的更新 171 和 172 中,应用程序不会在离线模式下启动。

如果我用 Java Cache Viewer 强制它进入离线模式,我会得到异常:

com.sun.deploy.net.FailedDownloadException: Ressource kann nicht heruntergeladen werden. System ist offline. (Resource can not be downloaded. System is offline.)
    at com.sun.deploy.cache.ResourceProviderImpl.checkUpdateAvailable(Unknown Source)
    at com.sun.deploy.cache.ResourceProviderImpl.isUpdateAvailable(Unknown Source)
    at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
    at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
    at com.sun.deploy.model.ResourceProvider.getResource(Unknown Source)
    at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResourcesHelper(Unknown Source)
    at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResources(Unknown Source)
    at com.sun.javaws.Launcher.prepareResources(Unknown Source)
    at com.sun.javaws.Launcher.prepareAllResources(Unknown Source)
    at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
    at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
    at com.sun.javaws.Launcher.launch(Unknown Source)
    at com.sun.javaws.Main.launchApp(Unknown Source)
    at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
    at com.sun.javaws.Main.access$000(Unknown Source)
    at com.sun.javaws.Main$1.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

如果我以 javaws -offline <jnlp-file> 开头,我会收到消息“Anwedung im Offlinebetrieb nicht verfügbar”(离线模式下的应用程序不可用)。

我用这个 jnlp 文件创建了一个最小的应用程序:

<jnlp spec="7.0" codebase="<URL>" href="<jnlp-file>"
  <information>
    <title>Base Test</title>
    <offline-allowed/>
  </information>
  <security>
    <all-permissions/>
  </security>
  <resources>
    <jar href="<jar-file>"/>
  </resources>
  <application-desc main-class="test.BaseTest"/>
</jnlp>

但这也不会在离线模式下启动。

我还能做什么?

【问题讨论】:

  • 我们刚刚开始通过更新 171 向我们的用户报告此问题。我猜想这已被 Java 以某种方式通过最新更新打破了。他们过去曾打破过它。已经有一段时间了,但现在似乎是这样。
  • 感谢您的回答,至少现在我知道我并不孤单。
  • “我还能做什么?” - 首先,提出一个包含足够详细信息的错误报告,以便 Java 团队可以重现该问题。给他们写一个 MCVE!
  • “还有人使用 Java Web Start 吗?我当然必须。” - 您将需要尽快找到另一种方法......'cos webstart 将消失,除非您/您的客户准备为 Oracle 支持合同付费。你可以把这件事当作压死骆驼的那根稻草.....

标签: java java-web-start jnlp offline-mode


【解决方案1】:

这是 JDK 8 171 的已知错误 https://bugs.openjdk.java.net/browse/JDK-8203272

这在更高版本的 JAVA 中已修复(能够使用 java 10 在离线模式下启动 jnlp)

没有办法通过 8-171 java update 以离线模式启动 JNLP。

用于桌面快捷方式启动 解决方法之一是(这只是一个黑客) 1. 创建 2 个不同的 jnlp,一个用于 java 8-171,另一个用于以离线模式启动 jnlp,用于其他 java 版本。

  1. 创建一个启动器 jnlp 应用程序,该应用程序在客户端本地检测 java 版本并启动相应的 jnlp。

(我目前正在研究它会在完成后更新代码)

在 JNLP 中使用此配置

JAVA 8 171

          <offline-allowed/>
           <shortcut>
            <desktop/>
           </shortcut>

JAVA 其他版本

          `<offline-allowed/>
           <shortcut online="false">
             <desktop/>
           </shortcut>`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    相关资源
    最近更新 更多