Java install4j Updater-重新启动后缺少cmdline参数
想象一下,基于Install4J的应用程序的安装已经完成。 假设安装的exe文件是用一些额外的命令行参数启动的。 现在更新程序启动,下载并安装新版本,然后重新启动 应用程序的exe文件,但cmdline参数已丢失/未传递到重新启动的应用程序中 有没有办法在更新后重新启动时保留这些参数 我说的是Install4J 7.0.5,在我的例子中,BGUpdater是通过API调用的(但如果它在后台自动运行,我想也是一样的)Java install4j Updater-重新启动后缺少cmdline参数,java,install4j,Java,Install4j,想象一下,基于Install4J的应用程序的安装已经完成。 假设安装的exe文件是用一些额外的命令行参数启动的。 现在更新程序启动,下载并安装新版本,然后重新启动 应用程序的exe文件,但cmdline参数已丢失/未传递到重新启动的应用程序中 有没有办法在更新后重新启动时保留这些参数 我说的是Install4J 7.0.5,在我的例子中,BGUpdater是通过API调用的(但如果它在后台自动运行,我想也是一样的) 并为下一次应用程序启动安排安装)。可执行文件将通过下载的安装程序的“Execut
并为下一次应用程序启动安排安装)。可执行文件将通过下载的安装程序的“Execute launcher”操作重新启动。该操作不知道可执行文件最初是用什么参数启动的 在应用程序中,必须保存参数,以便新安装程序可以访问它们,例如Java首选项存储中的参数。在安装程序中,您可以使用“从Java首选项存储中读取密钥”操作将参数保存到安装程序变量中,比如“lastArguments”。然后可以将“执行启动器”操作的“Arguments”属性设置为
${installer:lastArguments}
更新7.0.9+: 一种新方法
UpdateChecker.executeScheduledUpdate(
List<String> updaterArguments,
boolean restartLauncher,
List<String> launcherArguments,
Runnable shutdownRunnable
)
UpdateChecker.executeScheduledUpdate(
列表更新参数,
布尔重新启动程序,
列出参数,
可运行关闭可运行
)
已添加,允许您在重新启动启动器时为其传递参数
但我想如果它在后台自动运行,并且
安排下一次应用程序启动的安装
否,在自动更新的情况下,当启动器重新启动时,也在7.0.9之前,始终传递启动器的原始参数。供将来的读者阅读:从7.0.9开始,将有一个版本的
UpdateChecker.executeScheduledUpdate
接受一个参数launcherArguments
。在这里,您可以将cmdline参数传递给启动器(感谢@Ingo在这方面帮助med!)