我使用UpdateFX更新我的应用程序的框架。因此,当我启动应用程序时,它会检查更新。这是检查较新版本的代码片段:
UpdateFX updater = new UpdateFX(this.getClass());
updater.checkUpdates();
如果有新版本,我会下载该文件。但是程序运行时如何重写呢?
最佳答案
UpdateFX 负责处理它。我建议您花一些时间浏览 UpdateFX 源代码。如果这样做,您会发现 InstallerService 实际上通过使用 ProcessBuilder 调用操作系统 native 命令来更新应用程序。
对于 MAC OS ,它将 PID 传递给 bash script ,这会使进程暂停,直到当前应用程序运行:
while /bin/ps -p $APP_PID > /dev/null; do
/bin/sleep 1;
done
然后它使用 Platform.exit()
杀死当前正在运行的应用程序。 由于 bash 进程是独立的,因此它会一直执行。
一旦应用程序退出,循环中的上述条件默认为false
,并且脚本通过模拟磁盘镜像、removing the old file 和 copying the new file 到应用程序目录中继续执行。然后它将 opens 新安装的应用程序。
关于java - 使用 UpdateFX 更新 JavaFX 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36971900/