JRE 8U171不可能使用Java Web启动离线模式



有人仍然使用Java Web启动吗?好吧,我必须这样做。

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

直到JRE8U161运行良好。但是,随着当前更新171和172,该应用程序不会以离线模式启动。

如果我使用Java缓存查看器将其迫使它脱机模式,我会得到例外:

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 Nichtverfü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>

但这也不会以离线模式开始。

我还能做什么?

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

这是在Java的后期版本中修复的(能够以Java 10在离线模式下启动JNLP(

无法使用8-171 Java Update以外线模式启动JNLP。

用于桌面快捷方式启动周围的工作之一就是(这只是一个黑客(1.为Java 8-171创建2个不同的JNLP一个,另一个用于其他Java版本的脱机模式下的JNLP。

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

(我当前正在处理它会在完成后更新代码(

在JNLP中使用此配置

Java 8 171

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

Java其他版本

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

最新更新