Ich habe eine Swing-Desktop-Anwendung entwickelt und überlege, wie ich die Autoupdate-Funktion am besten realisieren kann. Ich weiß, dass JavaWebStart dies bietet, aber ich denke, dass es nicht meinen Bedürfnissen entspricht, weil ich lokale Dateien lesen muss, so dass ich das Jar signieren müsste. Außerdem erfordert JWS zusätzliche Arbeit für die Bereitstellung auf dem Server, während ich jetzt nur das .jar hochladen muss.
Ich habe über diesen Ansatz nachgedacht:
-
Ein erstes JAR (das nie aktualisiert werden muss) lädt den Splashscreen, überprüft die aktuelle Version in einer config.xml und vergleicht sie mit der config.xml des Servers.
-
Wenn die Serverversion neuer ist, fragen Sie den Benutzer, ob er eine Aktualisierung wünscht. In diesem Fall laden Sie die neue "main.jar", die neue "config.xml" und das neue Splash/Icon herunter, prüfen MD5SUM und ersetzen die alten Dateien durch die neuen.
-
Starten Sie "main.jar".
Ich weiß nicht, ob ich versuche, das Rad neu zu erfinden, oder ob es ein besseres Muster gibt als das, das ich oben beschrieben habe.