java - install4j Updater - 重新启动后缺少 cmdline 参数

标签 java install4j

想象一下,基于 Install4J 的应用程序的安装已经完成。 想象一下,安装的 exe 文件是用一些额外的命令行参数启动的。 现在更新程序启动,下载并安装新版本,然后重新启动 应用程序的 exe 文件,但 cmdline 参数消失/未传递到重新启动的应用程序中。

有没有办法保留那些更新后重启的参数?

我说的是 Install4J 7.0.5,在我的例子中,BGUpdater 是通过 API 调用的(但我想如果它在后台自动运行也是一样的) 并为下一个应用程序启动安排安装)。

最佳答案

可执行文件通过下载的安装程序中的“执行启动程序”操作重新启动。该操作不知道可执行文件最初以什么参数启动。

在您的应用程序中,您必须保存参数以便新安装程序可以访问它们,例如在 Java 首选项存储中。在安装程序中,您可以使用“从 Java 首选项存储中读取 key ”操作将参数保存到安装程序变量,例如“lastArguments”。然后,您可以将“执行启动器”操作的“参数”属性设置为 ${installer:lastArguments}


7.0.9+ 更新:

一种新方法

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

已添加,允许您在重新启动时为启动器传递参数。

but I guess it's the same if it runs automatically in the background and schedules installation for next application start

不,在自动更新的情况下,启动器的原始参数总是在启动器重新启动时传递,在 7.0.9 之前也是如此。

关于java - install4j Updater - 重新启动后缺少 cmdline 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50429748/

相关文章:

java - 与主机 localhost、端口 1433 的 TCP/IP 连接失败

java - 将此对象传递给事件处理程序

java - 在Install4j 中调整适用于 MAC 的捆绑 JRE

java - install4j 生成的可执行文件不启动

install4j - 选择复选框

java - Install4j:窗口定位

java - 将 WAR 打包到 JBoss SAR 中

java - "Shared secret"用于 JWT 身份验证 SOA

java - 自动更新 Swing 应用程序 - Install4J

java - 获取 "illegal access to loading collection"错误