使用 UpdateFX 更新 JavaFX 应用程序

Update JavaFX application using UpdateFX

我使用 UpdateFX 框架来更新我的应用程序。因此,当我启动我的应用程序时,它会检查更新。这是检查更新版本的片段:

UpdateFX updater = new UpdateFX(this.getClass());
updater.checkUpdates();

如果新版本实现了,我下载文件。但是当程序是运行时如何重写它?

UpdateFX 负责处理。我建议您花一些时间浏览 UpdateFX 源代码。如果这样做,您会发现 InstallerService which actually updates the Application by calling a OS native command using ProcessBuilder.

For MAC OS, it passes the PID to the bash script 暂停进程直到当前应用程序是 运行 :

while /bin/ps -p $APP_PID > /dev/null; do 
  /bin/sleep 1; 
done

它然后 杀死 当前 运行 使用 Platform.exit() 的应用程序。 由于bash进程是独立的,所以一直在执行

一旦应用程序退出,循环中的上述条件默认为 false 并且脚本通过模拟磁盘映像继续执行,removing the old file and copying the new file into Application directory. It then opens 新安装的应用程序。