Ich frage mich, ob es möglich ist, eine Java-Desktop-Anwendung beim Start auf eine URL zu schauen, um zu sehen, ob sie eine Aktualisierung benötigt, und wenn nötig JAR-Dateien herunterzuladen und sie dem Classpath für das laufende Programm hinzuzufügen .
Wenn die alten Gläser da sind, sollten sie noch nicht in den Klassenlader geladen worden sein, an dieser Stelle sollten sie? Ist es möglich, sie auszutauschen, bevor sie geladen werden, ohne die Anwendung neu zu starten?
Es sollte möglich sein. Der URLClassLoader ist ein Ort zum Starten.
Es ist möglich, aber anfällig für Fehler.
Ein etwas saubererer Ansatz besteht darin, eine "Launcher" -Anwendung zu haben, die nicht auf any der aktualisierbaren JARs angewiesen ist, die obigen Schritte auszuführen und dann die eigentliche App zu starten.
Weitere Informationen hierzu finden Sie diese Frage Thema.
Java Web Start ist wahrscheinlich die beste Wahl. Die erforderlichen JAR-Dateien sollten im Deskriptor angegeben werden, damit Sie die Versionskontrolle verwalten können.
Wenn Sie eine dynamische Anwendung haben, die dynamisch Klassen zur Laufzeit ermitteln und herunterladen muss, können Sie sich Herunterladen von dynamischem Code mit RMI .
Java Web Start ist eine gute Wahl, hat aber einige Macken. Bemerkenswert:
Aber WENN es funktioniert, funktioniert es ziemlich gut. Es ist meines Wissens der einfachste Weg, um eine zentralisierte Version einer bestimmten Java-Anwendung leicht zu aktualisieren.
-
EDIT: Es scheint, dass die Funktion "Programm starten und Updates transparent, wenn verfügbar" im aktuellen Java 6 vorhanden ist. Ich habe es noch nicht versucht, aber bald.
Tags und Links java classpath jar auto-update