Wie kann ich eine Java-Anwendung schreiben, die sich zur Laufzeit selbst aktualisieren kann?

Ich möchte eine Java-Anwendung (Serveranwendung) implementieren, die eine neue Version (.jar-Datei) von einer bestimmten URL herunterladen und sich dann zur Laufzeit selbst aktualisieren kann. Was ist der beste Weg dies zu tun und ist es möglich? Ich denke, dass die Anwendung eine neue JAR-Datei...