Hallo Zusammen,
ich will meinem Spiel gern eine Updatefunktion bescheren. Ich weiß, dass ich WebStart benutzen könnte, würde das ganze aber gern im Spiel selber machen und nicht vorher ein unschön gestaltetes Fenster angezeigt bekommen (Webstart). Ich will auch kein OSGI oder so nutzen, da es einfach zu viel Arbeit wäre, mein Programm umzukrempeln. Außerdem denke ich, dass das garnicht nötig sein sollte...
Meine Frage:
Wie kann ich eine Jar-Datei updaten, die gerade ausgeführt wird ? Es muss iwie gehen, denn MineCraft z.B. öffnet sich auch erst, überprüft dann, ob es Updates gibt und wenn ja, werden diese geladen. Das Programm muss dafür nicht geschlossen werden.
Aber die ausführende Jar-Datei ist ja gesperrt durch die JVM. Wie wird sowas erledigt ? Außerdem vermute ich mal, dass das ersetzen der Jar-Datei nicht umbedingt einen Einfluss auf das ausführende Prorgamm hat, kann ja sein, dass viele Klassen schon in die JVM geladen wurden und ab dann gecached werden...
Habt ihr vlt. mit sowas Erfahrung ? Oder vlt. Ideen, wie swoas grundsätzlich erledigt werden kann ?
Versionsabgleich etc ist kein Problem: Ich berechne die Checksum aller relevanten Dateien und fordere nur neue Dateien an.
Gruß,
Chris
ich will meinem Spiel gern eine Updatefunktion bescheren. Ich weiß, dass ich WebStart benutzen könnte, würde das ganze aber gern im Spiel selber machen und nicht vorher ein unschön gestaltetes Fenster angezeigt bekommen (Webstart). Ich will auch kein OSGI oder so nutzen, da es einfach zu viel Arbeit wäre, mein Programm umzukrempeln. Außerdem denke ich, dass das garnicht nötig sein sollte...
Meine Frage:
Wie kann ich eine Jar-Datei updaten, die gerade ausgeführt wird ? Es muss iwie gehen, denn MineCraft z.B. öffnet sich auch erst, überprüft dann, ob es Updates gibt und wenn ja, werden diese geladen. Das Programm muss dafür nicht geschlossen werden.
Aber die ausführende Jar-Datei ist ja gesperrt durch die JVM. Wie wird sowas erledigt ? Außerdem vermute ich mal, dass das ersetzen der Jar-Datei nicht umbedingt einen Einfluss auf das ausführende Prorgamm hat, kann ja sein, dass viele Klassen schon in die JVM geladen wurden und ab dann gecached werden...
Habt ihr vlt. mit sowas Erfahrung ? Oder vlt. Ideen, wie swoas grundsätzlich erledigt werden kann ?
Versionsabgleich etc ist kein Problem: Ich berechne die Checksum aller relevanten Dateien und fordere nur neue Dateien an.
Gruß,
Chris