Как передать JNLP в объекте XML-документа в javaws внутри кода - PullRequest
0 голосов
/ 06 декабря 2018

Я работаю над несколькими JAR-приложениями и пришел к выводу, что мне, вероятно, понадобится использовать несколько макетов jnlp, чтобы программа запускалась постепенно через веб-запуск.Одна банка запускает следующую, когда это необходимо.

Итак, что я планирую: использовать обычный HTML для запуска «LaunchingApp.jar» через обычный launch.jnlp.Это сделано и работает.Внутри LaunchingApp.jar я хочу запустить 2 других приложения App1 и App2.Так что мои мысли таковы, что на них нельзя ссылаться из кеша javaws как на jar, ни о каком jnlp не может быть и речи.Поэтому я буду транслировать JNLP для App1 и App2 по входному потоку в объект документа, изменяя его для добавления аргументов по мере необходимости (эта часть также выполнена).

Итак, суть вопроса такова:У меня есть объект Document, который содержит XML для моего JNLP для App1 и один для App2, как мне отправить его в javaws?

Я использовал / использую ProcessBuilder, но я не уверен, как передать JNLP в мой объект, чтобы он распознавался как jnlp.Буду ли я отправлять его как строковую версию объекта Document?РЕДАКТИРОВАТЬ: Не удается отправить чавки XML-строки напрямую.

Мой код ProcessBuilder, если вы заинтересованы или это необходимо, заключается в следующем.Обратите внимание, что это закомментировано в настоящее время в моем коде, потому что вы не можете передать объект Doc в ProcessBuilder.command, так как он ожидает строку и в основном, например.

  private static void launchApp(String appName, Document doc, String... arguments)
  {
      logger.debug("Launching application: " + appName);
      ProcessBuilder rmLauncher = new ProcessBuilder().command("javaws " + doc);
      Process p;  
      p = rmLauncher.start();
  }

1 Ответ

0 голосов
/ 06 декабря 2018

IIRC JNLP теперь требует подписи объекта, так что вы не сможете сделать это без какой-нибудь ерунды в стиле Superfish.

DownloadService и DownloadService2, вероятно, сделают все, что вам нужно в отношении прогрессивной загрузки.

Передача данных в приложения JNLP является сложной задачей.Если вы уже используете приложение JNLP, вы можете использовать PersistenceService.

...