Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-12-2008, 11:40   #1
blackskop
Senior Member
 
Iscritto dal: Aug 2008
Messaggi: 308
[JAVA] realizzare un updater

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?
blackskop è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2008, 12:34   #2
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Io almeno per 2 volte ho usato con successo:
1) Lancio l'applicativo Loader (L'utente lancia sempre solo questo).
2) Il loader controlla se c'e' una versione piu' nuova dell'applicativo vero, che e' un altro eseguibile
3) Se non c'e' una versione piu' nuova vai a 6.
4) Chiede se si vuole effettuare l'aggiornamento. Altrimenti vai a 6.
5) Scarica il nuovo eseguibile in versione temporanea e poi lo sostituisce al vecchio
6) lancia l'eseguibile dell'applicazione e chiude il loader.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2008, 12:46   #3
blackskop
Senior Member
 
Iscritto dal: Aug 2008
Messaggi: 308
Grazie, così l'avevo pensato anche io utilizzando però due applicazioni diverse. Nel caso in cui volessi integrare tutto in un'unica applicazione?
blackskop è offline   Rispondi citando il messaggio o parte di esso
Old 21-12-2008, 12:56   #4
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da blackskop Guarda i messaggi
Grazie, così l'avevo pensato anche io utilizzando però due applicazioni diverse. Nel caso in cui volessi integrare tutto in un'unica applicazione?
Non saprei. Io pensandoci e leggendo in giro l'ho realizzata con l'applicazione + Loader separati.
Se trovi una soluzione piu' semplice con un'applicazione sola faccelo sapere, ma leggendo su finora mi sembrano salti mortali non giustificabili, che mi sembrano anche poco resistenti nel caso in cui qualcosa durante uno dei vari punti non vada a buon fine.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
I social network hanno stancato gli ital...
Star Citizen supera i 900 milioni di dol...
Netflix ha eliminato la funzione Cast pe...
L'IA è una bolla e scoppier&agrav...
Un rapporto collega i data center di Ama...
Troppa concorrenza per Cherry (quella de...
Entro il 2035 la Cina vuole costruire de...
Tineco in super sconto: ultimo giorno di...
La Cina creerà una costellazione ...
I veicoli elettrici emettono radiazioni ...
Stai per acquistare una PS5? Attento al ...
iPhone 17 Pro Max finalmente disponibile...
Apple, Sony, Bose, Beats, Sennheiser, CM...
Arriva il Raspberry Pi 5 da 1 GB, ma por...
Draghi scuote l'Europa: 'rischio stagnaz...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:47.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v