2008-11-20 7 views
26

Welches System empfehlen Sie für die Implementierung von "automatischen Updates" für einige Java (Desktop) -Anwendungen? Ich möchte auch Modul/Plugin installieren und aktualisieren. Denken Sie an Eclipse und Firefox."Automatische Updates" für Java (Desktop) -Anwendung?

Ich bin bewusst von Eclipse RCP OSGi Zeug, und auch NetBeans RCP hat hier etwas. Muss man komplett in seine jeweiligen RCP-Sachen einkaufen, um ihr Modul und automatische Update-Systeme zu verwenden?

Gibt es andere Optionen?

Antwort

18

Haben Sie sich die Java Web Start angesehen? Es sucht nach dem aktualisierten Modul auf dem Server und lädt es nur bei Bedarf herunter, ansonsten werden Dinge lokal auf dem Client-PC zwischengespeichert und von dort gestartet.

+1

AKA "Java Network Launch-Protokoll (JNLP), –

+0

Ich glaube nicht, dass Java Web Start ist die Antwort hier. Angenommen, dies ist eine große Anwendung - in der Nähe einer Anwendung" Container "wie Eclipse (die IDE) ist und wie Firefox ist. – stolsvik

+0

Warum wäre die Größe ein Problem? –

8

Web Start ist großartig, wenn Sie selten Updates und gute Bandbreite haben.

Wenn nicht, benötigen Sie etwas anderes. Ich arbeitete an einem Projekt mit häufigen Updates und schrecklicher Bandbreite. Wir haben unseren eigenen Classfile Server gerollt; Der Startup-Code würde mit dem Server sprechen, um zu sehen, ob Updates pro Klasse erforderlich sind. Wenn dies der Fall war, wurden die geänderten Klassen heruntergeladen, und die Anwendung wurde normal fortgesetzt.

Es war eigentlich nicht besonders kompliziert, also haben Sie keine Angst, Ihre eigenen zu rollen, wenn bestehende Werkzeuge nicht funktionieren.

+0

Jardiff bedeutet, dass nur die Unterschiede heruntergeladen werden müssen, nicht die ganze Sache. Sollte auch bei schlechter Bandbreite in Ordnung sein. –

+0

@tom, hast du Erfahrung damit? Ich würde gerne hören, ob es sich lohnt. –

+0

davetron, wie kann ich den Startup-Code in einer JAR-Datei implementieren? Das Klassen-Diff-Scannen ist kein Problem, aber der Start ist. Ich kann den laufenden Jar nach dem Herunterladen des Updates nicht überschreiben. –

9

Ich glaube, dass Install4J bietet jetzt diese Funktionalität als Teil ihrer Installation Builder (http://www.ej-technologies.com/products/install4j/overview.html) Wir wollten es überprüfen, hatten aber noch keine Chance.

+0

Danke, das war interessant. Möglicherweise verwenden Sie das für den "Kernbehälter", und z.B. Eclipse OSGi für Plugins? – stolsvik

1

Werfen Sie einen Blick auf Equinox p2, was wahrscheinlich ist, was Sie mit „Eclipse RCP des OSGi stuff“ gemeint ... AFAIK Sie wird Notwendigkeit zu OSGi-ify Ihre App p2 zu verwenden (die an den allerwenigsten Mittel machen Ihre ganze Anwendung ein großes Bündel).