Originariamente inviato da Alex'87
Puoi fare così: sul tuo server (o da qualche parte online) piazzi un file di testo contenente il numero della versione più aggiornata del tuo programma. All'avvio dell'applicazione apri una connessione verso questo file e confronti la versione locale con la versione online: se quest'ultima è più aggiornata scarichi il nuovo jar.

Non è difficile da realizzare
Secondo me non è nemmeno così banale...ci sono da considerare una serie di cose:

1) cosa si intende per versione del programma? un mumero assegnato a ogni build? oppure un tag assegnato con opportuna convenzione sul SCM (Source Code Manager: svn, git...), o un numero gestito completamente a mano?
2) In generale sistemi come Windows non gradiscono troppo che si sostituisca il file di un programma in esecuzione, quindi oltre al gestire lo scaricamento del nuovo jar , va anche gestito il fatto che il programma deve terminare l'esecuzione per essere sostituito, quindi o si usa un modulo esterno al programma stesso o si prevede qualche altra strategia, in ogni caso un po difficile lo è a mio avviso .