Install4j Updater - параметры cmdline отсутствуют после перезапуска - PullRequest
0 голосов
/ 20 мая 2018

Представьте, что установка приложения на основе Install4J завершена.Представьте, что установленный exe-файл запускается с некоторыми дополнительными параметрами командной строки.Теперь Updater запускает, загружает и устанавливает новую версию и перезапускает исполняемый файл приложения, но параметры cmdline пропускаются / не передаются в перезапущенное приложение.

Есть ли способ сохранить эти параметры дляперезапуск после обновления?

Я говорю об Install4J 7.0.5, и в моем случае BGUpdater вызывается через API (но я думаю, что это то же самое, если он запускается автоматически в фоновом режиме и планирует установку для следующего приложения).старт).

1 Ответ

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

Исполняемый файл перезапускается с помощью действия «Execute launcher» в загруженном установщике.Это действие не знает, с какими аргументами изначально запускался исполняемый файл.

В вашем приложении вам нужно будет сохранить аргументы, чтобы новый установщик мог получить к ним доступ, например, в хранилище предпочтений Java.В установщике вы можете использовать действие «Чтение ключа из хранилища настроек Java», чтобы сохранить аргументы в переменной установщика, скажем, «lastArguments».Затем вы можете установить для свойства «Аргументы» действия «Запуск средства запуска» значение ${installer:lastArguments}.


Обновление для 7.0.9 +:

Aдобавлен новый метод

UpdateChecker.executeScheduledUpdate(
    List<String> updaterArguments, 
    boolean restartLauncher, 
    List<String> launcherArguments, 
    Runnable shutdownRunnable
) 

, который позволяет передавать аргументы для модуля запуска при перезапуске.

, но, полагаю, он будет таким же, если он автоматически запускается в фоновом режимеи планирует установку для следующего запуска приложения

Нет, в случае автоматического обновления исходные параметры для модуля запуска всегда передаются при перезапуске модуля запуска, также до 7.0.9.

...