2011-01-30 3 views
9

Ho sviluppato un'applicazione Java Swing e verrà installata su più client in posizioni diverse. L'applicazione verrà installata manualmente da me. Ma vorrei aggiornare automaticamente l'applicazione su Internet, senza l'interazione dell'utente, in modo simile al modo in cui Google Chrome viene aggiornato.Quali sono le alternative per aggiornare automaticamente un'applicazione Java Swing?

Quali sono i modi alternativi per ottenere questa funzionalità di aggiornamento automatico in Java Swing? Esistono validi framework di terze parti in grado di risolvere questo problema? o c'è una funzionalità integrata Java che posso usare?

+2

possibile duplicato di [Come scrivere un programma di auto aggiornamento in Java?] (Http://stackoverflow.com/questions/4706153/how-to-write-a-self-updating-program-in-java) – Bozho

+0

@Bozho: Peccato che le persone non taggano correttamente le loro domande. Ho cercato "swing update" ma non c'erano domande come questa. Poi ho cercato "[swing] [update]" e "[swing] [auto-update]" e solo una domanda è stata trovata, ma si trattava di un'etichetta. Quindi è positivo che le persone possano riadattare le domande in modo che non debbano votare per chiudere nuove domande. – Jonas

+0

concordato. "autoaggiornarsi" è anche peggio di "auto-aggiornamento". – Bozho

risposta

9

Distribuire l'applicazione utilizzando Java Web Start e si potrebbero facilmente essere in grado di avere lo stesso aggiornamento automatico.

3

Bene, hai java web start. Sfortunatamente in alcuni casi può essere difettoso.

C'è anche jExpress, un'alternativa commerciale; Questo è ciò che usiamo nella nostra azienda ei risultati sono molto buoni.

Edit:

Un tappo di spettacolo ho urtato, in JWS era legato a hibernate3.jar file. Non so esattamente perché, ma durante il download si è sbagliato a lamentarsi della firma, sebbene il file fosse correttamente firmato. Ecco lo bug report pubblicato da qualcuno nel luglio 2010; apparentemente potrebbe essere stato corretto per la versione 1.7. Grande!

L'altro rancore che ho con JWS è l'esperienza dell'utente pianura:

  • l'utente deve scaricare un file .jnpl che non è realmente un eseguibile. Se l'utente ha rovinato le associazioni di file, sfortuna; è meglio sperare che abbia sentito parlare di "javaws" :)

  • Dopo aver eseguito il programma tramite JWS (o il collegamento creato) c'è una schermata iniziale in java e poi una pausa (a volte) molto grande fino a quando il programma effettivamente inizia. La maggior parte degli utenti probabilmente penserà che non è successo niente o il programma si è bloccato.

+1

Qualche esempio di bug? – Pete

+0

Vedere il mio aggiornamento Pete – Bogdan

+0

Grazie e sono d'accordo con te sull'esperienza utente. Quando non funziona, il file .jnlp viene scaricato e non accade nulla (apparentemente). – Pete

5

Volevo solo aggiungere che Java Web Start consente anche di configurare cache di sistema e utente (ad esempio se un desktop è condiviso da molti utenti, è possibile scaricare l'app nella cache di sistema solo una volta e non per ogni singolo utente).

Inoltre, se si condivide la cache di sistema su un'unità di rete o un volume condiviso per una posizione, il download si verifica solo una volta per tutti i desktop in questa posizione.