blackskop
21-12-2008, 10:40
Ciao. Vorrei realizzare un updater semplice in java. L'updater deve essenzialmente fare questo:
1) Controllare se esiste una versione più recente dell'applicazione.
2) Scaricare l'applicazione.
3) Sostituire l'applicazione corrente con la nuova.
Sembra semplice ma in realtà la cosa è abbastanza complessa, soprattutto per quanto riguarda il punto 3.
Innanzitutto bisogna scegliere se integrare l'updater nell'applicazione o lanciarlo come processo separato.
L'applicazione risiede in un unico file jar.
Scegliamo il caso in cui integriamo l'updater nell'applicazione.
1) Lancio l'applicazione A.
2) Lancio l'updater.
3) Scarico la nuova versione B in una cartella tmp
4) Chiedo all'utente se vuole riavviare subito o meno.
Se l'utente riavvia subito
lancio B
cancello A
copio B nella stessa posizione di A
termino B
lancio A
cancello B
se invece l'utente non riavvia subito
lancio A
chiudo A
lancio B
cancello A
copio B nella stessa posizione di A
termino B
lancio A
cancello B
Secondo voi è un modo corretto di realizzare l'updater?
1) Controllare se esiste una versione più recente dell'applicazione.
2) Scaricare l'applicazione.
3) Sostituire l'applicazione corrente con la nuova.
Sembra semplice ma in realtà la cosa è abbastanza complessa, soprattutto per quanto riguarda il punto 3.
Innanzitutto bisogna scegliere se integrare l'updater nell'applicazione o lanciarlo come processo separato.
L'applicazione risiede in un unico file jar.
Scegliamo il caso in cui integriamo l'updater nell'applicazione.
1) Lancio l'applicazione A.
2) Lancio l'updater.
3) Scarico la nuova versione B in una cartella tmp
4) Chiedo all'utente se vuole riavviare subito o meno.
Se l'utente riavvia subito
lancio B
cancello A
copio B nella stessa posizione di A
termino B
lancio A
cancello B
se invece l'utente non riavvia subito
lancio A
chiudo A
lancio B
cancello A
copio B nella stessa posizione di A
termino B
lancio A
cancello B
Secondo voi è un modo corretto di realizzare l'updater?