JPackagged App 启动MSI Installer,然后System.exit()

问题描述 投票:0回答:1

我有一个 JPackagged JavaFX 应用程序,它读取 github 存储库的版本以检索更新。当发现更新时,它会下载新的 .msi 文件并运行它。但是,如果我在没有完全退出应用程序的情况下运行 MSI(例如

Platform.exit()
),安装程序将无法正常工作,因为它尝试安装的目录中正在运行一个应用程序。我被迫使用
System.exit()
关闭应用程序。

进一步的问题是,我尝试同时使用

Runtime.exec()
ProcessBuilder
,但是当通过
System.exit()
关闭应用程序时,这两个工具都会关闭。

如何从 Java 应用程序运行任务/进程 (msiexec),然后使用

System.exit()
关闭 Java 应用程序而不结束外部进程?

java javafx windows-installer jpackage
1个回答
0
投票

来自色拉的评论:

在版本 21.0.2 中存在 回归,退出 Java 进程也会杀死所有分叉的子进程。看起来它在版本 23 中得到了修复,尽管有一些向后移植到 22.0.1 和 21.0.4-oracle(其他供应商可能也有 21.0.4 的向后移植)。当然,这些版本都还没有发布。您可以尝试使用旧版本的 jpackage。

我确认问题出在 jpackage 本身,并回滚到 17.0.7 解决了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.