Ho sviluppato un'app per desktop Swing e sto pensando al modo migliore per fornire la funzionalità di aggiornamento automatico. So che JavaWebStart fornisce questo, ma penso che non soddisfa le mie esigenze perché ho bisogno di leggere i file locali, quindi avrei bisogno di firmare il barattolo. Inoltre, JWS richiede un lavoro supplementare per la distribuzione nel server, mentre ora ho solo bisogno di caricare il .jar.Funzione di aggiornamento automatico in un'applicazione desktop Java Swing
ho pensato a questo approccio:
Un primo JAR (che non necessita di un aggiornamento) carica lo splashscreen, controlla la versione corrente in un config.xml e lo confronta con la configurazione del server. xml.
Se la versione del server è più recente, chiedere all'utente se desidera aggiornare. In tal caso, scaricare il nuovo "main.jar", il nuovo "config.xml" e il nuovo splash/icona, controllare MD5SUM e sostituire i vecchi file con quelli nuovi.
Avviare "main.jar".
Non so Se sto cercando di reinventare la ruota o Se c'è uno schema migliore di quello che ho messo sopra.
Stai rivisitando la ruota e lo sai già, dal momento che menzioni Java WebStart. La distribuzione sul server è minima, è necessario solo pubblicare alcuni file, non è necessario un componente attivo sul server. –
Suggerisco di usare un certificato piuttosto che controllare un hash da https. Con la tecnica hash, un server https compromesso significa compromettere tutti i client di autoaggiustamento./Controlla anche di installare una versione più aggiornata per evitare attacchi di downgrade./WebStart fornisce un'interfaccia limitata all'uso dei file, sebbene il controllo/personalizzazione del browser di file sia limitato. –
Penso che non sia così minimale. Devo distribuirlo in un server non controllato da me. Ad esempio, non posso cambiare i mimetipi. Inoltre, come ho detto, sarebbe necessario accedere ai file locali, quindi avrei bisogno di firmarlo. – ktulur