Java Anwendung updatebar machen

jimb0p

Erfahrenes Mitglied
Hallo Zusammen,

ich habe eine Anwendung geschrieben die mehrere Leute benutzen und jedes mal wenn ich Änderungen habe ziehe ich an jedem PC die neue Version der Anwendung auf die lokale Festplatte des jeweiligen PCs. Das ist natürlich sehr lästig, daher möchte ich eine Updatefunktion in die Anwendung einbauen, oder ggf. etwas bereits vorhandenes nutzen, nur hierüber habe ich absolut keine Erfahrung. Kann mir jemand mal ein paar Infos geben wo man da ansetzt?

Vielen Dank
LG
 

sheel

I love Asm
Hi

Annahme: Nur die Programmdatei (Jar etc.) selber muss upgedatet werden,
keine zusätzlichen anderen Dateien. (sonst wirds eben umständlicher: Was updaten
und was am alten Stand lassen, zB. eine Einstellungsdatei
damit die vom User nicht überschrieben werden usw.)

Irgendwo im Internet neue Programmdateien downloadbar haben, am Besten so
dass man erkennt welche die neueste ist und von wann (zB. Datum als Dateiname).

Das eigentliche Programm beim User schaut da eben immer wieder mal nach
(zB. beim Programmstart), und falls eine neuere Datei als die gerade eingesetzte
vorhanden ist, herunterladen und statt der Programm.jar (oder wie sie heißt)
eben die neue Datei hintun.


Das "einfach die neue Datei hintun" ist noch ein Problem für sich.
Man hat also grad die Programm.jar (gerade laufend), und eine neu.jar,
und man will die alte Programm.jar weghaben und neu.jar in Programm.jar umbenennen.
Auf Linux geht das einfach so: Alte Datei löschen, die andere umbenennen, die "neue"
Programm.jar eben starten und das alte noch laufende Programm beenden
(nur noch das neue weiterlaufen lassen).

Auf Windows kann man das gerade laufende Programm aber nicht weglöschen.
Das alte Programm muss das neue (noch in neu.jar) starten und sich beenden.
neu.jar muss warten, wis das alte Programm aus ist, dann Programm.jar löschen,
und sich selbst als Programm.jar hinkopieren. Das wieder starten und sich selbst beenden.
Das neue Programm.jar muss dann wieder warten, bis das überflüssige neu.jar aus ist
und dann löschen.
Damit die Programme wissen, dass sie gerade wegen Updateschritt 1/2/3 gestartet werden,
statt einfach für den Normalbetrieb, sind Programmparameter (String[] args bei main) ganz hilfreich.