2011-01-16 10 views
7

Come posso creare un programma Java in grado di aggiornarsi. Faccio questo programma per l'uso all'interno di una piccola squadra. Non ho bisogno di funzionalità avanzate. Ho solo bisogno di una soluzione semplice e minimale.Come scrivere un programma di auto aggiornamento in Java?

+1

Io ho bisogno di chiarire cosa intendi per autoaggiornamento. Questo è un termine abbastanza carico e ambiguo. – Uri

+0

Sì: intendi in effetti un programma che scrive codice autoesecutivo o un programma che scarica una nuova versione di se stesso? –

+0

Ci scusiamo per questo termine ambiguo. È proprio come la funzione di aggiornamento di Firefox. Controlla automaticamente gli aggiornamenti su Internet e aggiorna la versione corrente. Provo a fare una piccola utility per il mio team e la distribuisco al team. Questa è la normale applicazione desktop swing. Sto anche migliorando continuamente questo programma, ma non ho voluto inviare questo programma di nuovo a tutti. – dmay

risposta

9

Java Web Start è specificamente progettato per questo. Spedisci un file jnlp e java si occupa di prelevare la versione più recente da un server.

Oltre a ciò, è possibile scaricare classi aggiornate e sostituirle in fase di esecuzione.

+2

Va notato che le applicazioni che caricano (ripetutamente) le classi aggiornate durante l'esecuzione tendono a perdere memoria permgen. È possibile evitare le perdite, ma non è semplice. –

+1

sì, è meglio che vengano riavviati di tanto in tanto. – Bozho

0

Cosa intendi per autoaggiornamento?

Se si intende che modifica il suo comportamento in fase di esecuzione (che è raro), è possibile creare codice che scrive il codice Java, lo compila e lo carica da un programma in esecuzione. L'ho visto fatto.

Lo scenario più comune è disporre di un programma principale con plug-in, in cui i plug-in possono essere aggiornati in fase di runtime. Il modo più semplice per farlo è semplicemente utilizzare le interfacce per questi servizi e quindi caricare istanze di questi tipi in fase di esecuzione. Tuttavia, la scrittura di un framework plug-in completamente robusto di solito reinventa la ruota. Esistono molte architetture esistenti come OSGi.

Problemi correlati