2011-01-16 13 views
7

Wie kann ich ein Java-Programm machen, das sich selbst aktualisieren kann. Ich mache dieses Programm für den Einsatz in kleinen Teams. Ich brauche keine erweiterten Funktionen. Ich brauche nur eine einfache und minimale Lösung.Wie schreibe ich ein selbst aktualisierendes Programm in Java?

+1

Ich, was Sie brauchen, um zu klären, was Sie mit Selbstaktualisierung meinen. Dies ist ein ziemlich belasteter und zweideutiger Begriff. – Uri

+0

Ja: Meinst du eigentlich ein Programm, das selbst-ausführenden Code schreibt oder ein Programm, das eine neue Version von sich selbst herunterlädt? –

+0

Sorry für diesen ambiguos Begriff. Es ist nur wie Firefox Update-Funktion. Es überprüft automatisch Aktualisierungen über Internet und aktualisiert aktuelle Version. Ich versuche, kleines Dienstprogramm für mein Team zu machen und es an das Team zu verteilen. Dies ist eine normale Desktop-Swing-Anwendung. Ich verbessere dieses Programm ständig, aber ich wollte dieses Programm nicht an alle senden. – dmay

Antwort

9

Java Web Start ist speziell dafür gedacht. Sie liefern eine jnlp-Datei, und java kümmert sich darum, die neueste Version von einem Server zu holen.

Abgesehen davon können Sie aktualisierte Klassen herunterladen und zur Laufzeit ersetzen.

+2

Es sollte angemerkt werden, dass Anwendungen, die während des Laufs (wiederholt) aktualisierte Klassen laden, dazu neigen, Permgen-Speicher zu verlieren. Sie können die Lecks vermeiden, aber es ist nicht einfach. –

+1

ja, sie sollten besser ab und zu neu gestartet werden. – Bozho

0

Was meinen Sie mit Selbstaktualisierung?

Wenn Sie meinen, dass es sein Verhalten zur Laufzeit ändert (was selten ist), könnten Sie Code erstellen, der Java-Code schreibt, kompiliert und aus einem laufenden Programm lädt. Das habe ich gesehen.

Das häufigere Szenario besteht darin, ein Kernprogramm mit Plug-Ins zu haben, in dem die Plug-Ins selbst zur Laufzeit aktualisiert werden können. Der einfachste Weg dazu besteht darin, Schnittstellen für diese Dienste zu verwenden und dann Instanziierungen dieser Typen zur Laufzeit zu laden. Wenn Sie jedoch ein vollständig robustes Plug-In-Framework schreiben, erfinden Sie das Rad normalerweise neu. Es gibt viele bestehende Architekturen wie OSGi.

Verwandte Themen