我使用UpdateFX框架来更新我的应用程序。因此,当我启动我的应用程序时,它会检查更新。这是检查较新版本的代码段:
UpdateFX updater = new UpdateFX(this.getClass());
updater.checkUpdates();
如果实现了新版本,我将下载文件。但是如何在程序运行时重写它呢?
UpdateFX会处理它。我建议您花一些时间浏览UpdateFX源代码。如果这样做,您会发现InstallerService实际通过使用ProcessBuilder调用OS本机命令来更新应用程序。
对于MAC OS,它将PID传递给bash脚本,该脚本将使过程保持暂停状态,直到当前应用程序运行为止:
while /bin/ps -p $APP_PID > /dev/null; do
/bin/sleep 1;
done
然后使用杀死当前正在运行的应用程序Platform.exit()
。由于bash进程是独立的,因此它将继续执行。
一旦应用程序退出,循环中的上述条件将默认为false
,脚本将通过模拟磁盘映像,删除旧文件并将新文件复制到Application目录中来继续执行。然后,它将打开新安装的应用程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句