Автономный режим Java Web Start невозможен с JRE 8u171 - PullRequest
0 голосов
/ 27 апреля 2018

Кто-нибудь еще использует 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>

Но это также не запустится в автономном режиме.

Что еще я могу сделать?

1 Ответ

0 голосов
/ 31 мая 2018

Это известная ошибка JDK 8 171 https://bugs.openjdk.java.net/browse/JDK-8203272

Это исправлено в более поздней версии JAVA (возможность запуска jnlp в автономном режиме с java 10)

Невозможно запустить JNLP в автономном режиме с обновлением Java 8-171.

ДЛЯ НАЧИНАЮЩИХСЯ СТОЛБОВ Один из обходных путей будет (это просто взломать) 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>`
...