2016-05-01 1 views
2

J'utilise le framework UpdateFX pour mettre à jour mon application. Donc, quand je démarre mon application, elle vérifie les mises à jour. Voici l'extrait qui vérifie la version la plus récente:Mise à jour de l'application JavaFX en utilisant UpdateFX

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

Je télécharge le fichier si une nouvelle version est réalisée. Mais comment le réécrire lorsque le programme est en cours d'exécution?

Répondre

2

UpdateFX s'en charge. Je vous conseille de passer un jour le code source de UpdateFX. Si vous le faites, vous trouverez InstallerService qui met à jour l'application en appelant une commande native du système d'exploitation à l'aide de ProcessBuilder.

Pour MAC OS, il passe le PID à l'bash script qui met le processus en attente jusqu'à ce que la présente demande est en cours d'exécution:

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

Il a ensuite tue l'application en cours d'exécution en cours en utilisant Platform.exit(). Comme le processus bash est indépendant, il continue d'exécuter.

Une fois la sortie de l'application, la condition ci-dessus dans les paramètres par défaut de boucle à false et le script continue l'exécution en émulant des images de disque, removing the old file et copying the new file dans le répertoire d'application. Il a ensuite opens l'application nouvellement installée.