Запуск приложения Java Web Start после завершения установки install4j - PullRequest
0 голосов
/ 05 января 2012

Я пытаюсь запустить install4j Launcher по окончании установки, но он не работает. Launcher прекрасно работает как пункт меню «Пуск». У меня есть основания полагать, что это потому, что мое приложение запускается через Java Web Start (это должно быть по юридическим причинам).

Что происходит при нажатии кнопки «Готово» в моем установщике install4j:

  1. Окно установщика исчезает, и Java WebStart запускается (показывая его всплеск).
  2. Больше ничего не происходит (обычно мое Java-приложение запускается здесь).

Просматривая журнал Java, я вижу, что WebStart фактически выполняет мое приложение Java, но не запускается полностью, поскольку файл C: \ Users \ Имя пользователя \ AppData \ Local \ Temp \ e4j2E4E.tmp_dir \ jre \ lib \ ext \ dnsns.jar больше не существует. Этот каталог, по-видимому, является местом, где install4j временно размещает JRE, в которой он должен работать.

Нажав клавишу F5 в файловом менеджере, я вижу, что JRE удаляется (я полагаю, с помощью install4j) после выполнения WebStart. Это объясняет, почему мое приложение Java не работает.

При запуске средства запуска меню "Пуск" (вручную после установки) все работает нормально, потому что мое приложение Java затем использует JRE, входящую в его комплект (в собственной подпапке).

Как я могу запретить install4j удалить временную JRE или заставить WebStart запускать мое Java-приложение с другой (связанной) JRE?

Заранее спасибо за любые предложения!

== EDIT == Вот как запускается мое приложение: Install4j Launcher запускает мой класс Java, который запускает двоичный файл javaws, который запускает мое основное приложение Java.

1 Ответ

0 голосов
/ 08 января 2012

Я предполагаю, что вы начинаете веб-запуск с действия «Запустить исполняемый файл». Используете ли вы System.getProperty("java.home") для определения местоположения текущего JRE? Это даст временно извлеченную JRE, которая будет удалена после выхода из программы установки.

Вместо этого вы должны использовать установочную переменную sys.preferredJre. В текстовых полях введите ${installer:sys.preferredJre}, в скриптах используйте context.getVariable("sys.preferredJre"). После запуска действия «Установить файлы» переменная будет содержать расположение установленного пакета JRE.

...