ar während der Laufzeit überschreiben

A

_-`avaj´-_

Gast
Ich habe neulich für mein Spiel einen Autoupdater gebastelt: Wenn das Spiel gestartet wird, wird zuerst geprüft ob es ein Update gibt, wenn ja wird die Datei heruntergeladen...
Aus Zufall hab ich ausversehen als Downloadfile den selben Namen, wie die Jar eingegeben und habe festgestellt, dass die alte jar ohne Fehler überschrieben worden ist und das alte Programm trotzdem noch lief...
Nach ein paar Versuchen habe ich festgestellt, das das Programm nur weiterläuft wenn keine Dateien aus der jar mehr gebraucht werden...

Ich frage mich nur wie "gesund" das ganze für die VM ist oder ist das ok?

Und noch eine Frage: mal angenommen das ganze ist machbar, kann ich die jar dann neu laden und dann ohne das Programm zu beenden mit der neuen jar weiterarbeiten?

Danke für euere Antworten
Gruß _-`avaj´-_
 
Zuletzt bearbeitet von einem Moderator:
G

Gast2

Gast
Ich würde zwei separate jar files erstellen, einmal den Starter (dein Updater) und dann dein eigentliches Programm.
Eine laufende Jar würde ich nicht überschreiben, es wundert mich eh dass das kommentarlos geht.
 
A

_-`avaj´-_

Gast
Da ist das nächste Problem: Ich will das ganze in EINEM Programm/jar haben und nicht in 2...
 
G

Gast2

Gast
Du kannst in der Regel eine Datei die in Benutzung ist nicht ändern. Es geht also nur über 2 Dateien.

Hat es einen Grund warum das in einem jar file sein muss?

EDIT:
Ansonsten bietet webstart glaub ich auch nen updateservice an.
 
G

Gast2

Gast
Du behälst doch die Plattformunabhängigkeit auch wenn du zwei Jars bereitstellst? Ich versteh nicht was das eine mit dem anderen zu tun haben soll.

Aber wie gesagt, schau dir auch mal webstart an, da gibts so einen Updatemechanismus schon.
 

Templarthelast

Bekanntes Mitglied
Du kannst nach einem Update, bei dem du das Update als nameUP.jar gespeichert hast, ein Batchscript(halt mehere Skripte für verschiedene OS) per Thread starten, welches die name.jar mit der nameUP.jar ersetzt und dann wieder das Programm starten.
 
A

_-`avaj´-_

Gast
Sorry frage falsch verstanden *shame on me*

Es sollte ein jar file sein weil ich nicht will dass der benztzer dann 2 datein auf seinem Desktop rumschieben muss...

Zu Web Start:
Ich bin glaub ich zu dumm mir das runterzuladen -.-
ich hab das hier gefunden:
JSR-000056 Java Network Launching Protocol and API Maintenance Release
aber die seite funktioniert nicht...

Wäre nett wenn jem. den Downloadlink posten würde...

Und kann mir jemand noch genau sagen wie das ganze funktioniert..?
Also der User lädt sich nicht mein Programm runter sondern Web Start und das erledigt das dann...?
Ich will aber eig. nicht dass der User noch andere Programme installieren muss...
 
A

_-`avaj´-_

Gast
@Templarthelast
Das habe ich auch schon probiert aber 1. verliere ich damit meine Platformunabhänigkeit (Batch) und 2. hatte mein Bath-Programm keine Rechte und konnte die Datein nicht umbenennen/Verschieben...
 

AngryDeveloper

Bekanntes Mitglied
Sorry frage falsch verstanden *shame on me*

Es sollte ein jar file sein weil ich nicht will dass der benztzer dann 2 datein auf seinem Desktop rumschieben muss...
Du kannst die eine .jar die andere .jar starten lassen. Sieht man so ähnlich heute ja auch bei vielen modernen Games (Launcher).

Der Launcher (deine erste .jar) kümmert sich um das Update und starten anschließend das Spiel (deine zweite .jar).
 
T

Tomate_Salat

Gast
Machs doch wies afaik Minecraft macht:
eine Launcher jar. Diese downloaded updates(ggf. das komplette spiel) und speichert es unter "user.home".
 
A

_-`avaj´-_

Gast
Also ich finde Java Web Start hört sich ziemlich gut an aber ich finde den Downloadlink nicht...

und @Templarthelast:
Ich habe gegoogelt und ich hate jetzt schon 3 Links gefunden:
einer geht nicht, und die anderen beiden verweisen mich auf den Download von JDK (?!)...

Also wenn jem so freundlich wäre den Link zu posten...
Danke =)
 
A

_-`avaj´-_

Gast
Ok, ich brauche einen Server, der apache nutzt.. hab nich nicht :(
Naja dann mach ich es es halt mit einem Launcher...

Danke an alle!
 
G

Guest2

Gast
Moin,

nein Du brauchst keinen Apache. Genaugenommen brauchst Du noch nicht mal Webspace um Webstart nutzen zu können (geht auch offline)! Lediglich für die Autoupdatefunktion brauchst Du Webspace, das kann aber irgendeiner sein.

Das einzige was Du brauchst sind Deine Jars und die JNLP-Datei. Beides auf den Webspace, Link auf die JNLP-Datei und fertig.

Viele Grüße,
Fancy
 
A

_-`avaj´-_

Gast
Ok ich gugs mir nochmal an...
Aber eine Frage: Lädt Webstart die Datei immer neu runter wenn es gestartet wird, oder erkennt es wenn es schon die neuste Datei hat...?
 
G

Guest2

Gast
Das erkennt der normalerweise über den Last-Modified Wert im HTTP-Header. Wenn sich die Dateien nicht geändert haben, wird auch nichts gesaugt. Andererseits kann es dadurch schwieriger werden, da Browser-Cache, Java-Cache und Proxys das Update verzögern können. Seit Java 1.6u22 sollte das aber hoffentlich funzen.

Viele Grüße,
Fancy
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Build-Zeitpunt (Datum und Uhrzeit) irgendwie während der Laufzeit zugänglich machen..? Allgemeine Java-Themen 4
D Boolean von ein anderem Java Programm während der Laufzeit ändern Allgemeine Java-Themen 23
N Generic Type einer Generischen Klasse während der Laufzeit bekommen Allgemeine Java-Themen 2
kodela Daten während Laufzeit zugriffsbereit Allgemeine Java-Themen 15
Neumi5694 Interpreter-Fehler final Eigenschaft während Laufzeit geändert Allgemeine Java-Themen 2
A Java Klasse auf Tomcat während der Laufzeit austauschen Allgemeine Java-Themen 1
H ResourceBundle während Laufzeit bearbeiten Allgemeine Java-Themen 3
X Update einer Jar während der Laufzeit Allgemeine Java-Themen 8
Sonecc Zugriff auf Class File einer anderen Jar während der Laufzeit Allgemeine Java-Themen 2
T Java - Compilieren während Laufzeit Allgemeine Java-Themen 3
R Drag und Drop - Fehler während Laufzeit Allgemeine Java-Themen 14
J ResourceBundle / properties-datei während der Laufzeit verän Allgemeine Java-Themen 6
M Formel in einem String während Laufzeit berechnen. Allgemeine Java-Themen 4
B Liste ändern während Iteration über Diese? Allgemeine Java-Themen 16
Neumi5694 Compiler-Fehler Konstanten entfernen während des Kompiliervorgangs Allgemeine Java-Themen 7
D Erhöhung der Programmgeschwindigkeit während der Programmlaufzeit Allgemeine Java-Themen 20
T Während des Programmlaufs andere Programme ausführen Allgemeine Java-Themen 1
I NullPointer während while(){} Allgemeine Java-Themen 4
M File einlesen während es beschrieben wird.. Allgemeine Java-Themen 6
X Button während Thread aktiv ist disablen Allgemeine Java-Themen 11
D MouseClickEvent während MouseDraggedEvent Allgemeine Java-Themen 7
ruutaiokwu META-INF-daten bei ungepackten library-projekten während der entwicklung mit einbeziehen...? Allgemeine Java-Themen 2
J Progress Bar während Datenbank Erstellung Allgemeine Java-Themen 2
X Über ArrayList iterieren, während sich diese verändert Allgemeine Java-Themen 3
H Labels erstellen während Programm läuft Allgemeine Java-Themen 3
P Speicherauslastung während Programm dokumentieren Allgemeine Java-Themen 3
G Hibernate speichert Daten nur während Session in HSQL-DB Allgemeine Java-Themen 10
H Thread während Rechenoperation wirkt nicht Allgemeine Java-Themen 2
I Startbild anzeigen während JVM geladen wird Allgemeine Java-Themen 5
M Suche , bereits während der eingabe ?? Allgemeine Java-Themen 4
M Laufzeit des Prim Algorithmus Allgemeine Java-Themen 3
M Laufzeit LinkedList Allgemeine Java-Themen 9
M verbesserte Laufzeit bei LinkedList Allgemeine Java-Themen 7
K Verbesserung der Laufzeit beim Sortieren von Einwohnern nach ihrem Geburtsjahr Allgemeine Java-Themen 0
H was ist den dieses zur Kompilierzeit und zur Laufzeit in Java? Allgemeine Java-Themen 3
L Classpath Zur Laufzeit bestimmte Klassen in Classloader hinzufügen? Allgemeine Java-Themen 4
L Compiler-Fehler Google Guice Module zur Laufzeit zusammenstellen und binden Allgemeine Java-Themen 4
J Jasper Reports - Subreport zur Laufzeit ändern Allgemeine Java-Themen 6
O jar und EXE Dateien, Pfade zur Laufzeit Allgemeine Java-Themen 1
T Externe Java Klasen zur Laufzeit einbinden Allgemeine Java-Themen 10
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
J .java-Dateitext Compile zur Laufzeit ohne File Allgemeine Java-Themen 15
M Sinn von Kompilierung zur Laufzeit Allgemeine Java-Themen 3
T Java Class Intrumentation mit Annotations in Laufzeit Allgemeine Java-Themen 1
S Byte Array welches in Laufzeit aufgelöst wird // Objekt Array Allgemeine Java-Themen 3
T Dateien zur Laufzeit in Java-Programm packen? Allgemeine Java-Themen 3
S Laufzeit Primzahlgenerator Allgemeine Java-Themen 18
S Zur Laufzeit Klasse mit einer anzahl von X Objekten erstellen Allgemeine Java-Themen 5
F Classpath Programmteile zur Laufzeit nachladen Allgemeine Java-Themen 6
D Variablen zur Laufzeit global speichern (Registry Pattern?) Allgemeine Java-Themen 6
J Input/Output Jar-Datei zur Laufzeit erweitern Allgemeine Java-Themen 13
P Generic zur Laufzeit Allgemeine Java-Themen 4
X MergeSort Laufzeit Problem Allgemeine Java-Themen 4
J Resourcen waehrend der Laufzeit aendern? Allgemeine Java-Themen 9
P Wie bei log4j den Dateipfad der Logdatei zur Laufzeit ändern? Allgemeine Java-Themen 3
T Klassen Fabrik (Factory) zur Laufzeit erweitern Allgemeine Java-Themen 5
S UML zur Laufzeit ändern Allgemeine Java-Themen 10
E Wert von enum zur Laufzeit festlegen. Allgemeine Java-Themen 5
L Methode in Thread mit langer Laufzeit unterbrechen (ANT executeTarget) Allgemeine Java-Themen 4
O Problem bei Darstellung der Laufzeit eines Programms Allgemeine Java-Themen 3
hdi Ressourcen dynamisch zur Laufzeit laden Allgemeine Java-Themen 15
A Wie zur Laufzeit auf Objekte zugreifen Allgemeine Java-Themen 7
N variable Anzahl von Objektinstanzen zur Laufzeit erstellen Allgemeine Java-Themen 4
P Java Konsole zur Laufzeit einblenden Allgemeine Java-Themen 4
P Klassenwahl zur Laufzeit Allgemeine Java-Themen 5
R Objekt zur Laufzeit zerstören? Allgemeine Java-Themen 12
E formartierte Ausgabe zur Laufzeit Allgemeine Java-Themen 2
F Wie zur Laufzeit ganz neue Objekte erzeugen? Allgemeine Java-Themen 5
T Class-files zur Laufzeit zu Reflection-Zwecken laden Allgemeine Java-Themen 18
DamienX Debug Modus zur Laufzeit erkennen Allgemeine Java-Themen 3
Stillmatic Debuggen/ Laufzeit von Methoden Allgemeine Java-Themen 2
Dragonfire Generic Typ zur Laufzeit Allgemeine Java-Themen 9
M Klasse zur Laufzeit ersetzen Allgemeine Java-Themen 10
S Wie gross ist die Laufzeit für diese Schleife?? Allgemeine Java-Themen 8
G File zur Laufzeit erzeugen Allgemeine Java-Themen 4
G Jar File zur Laufzeit ändern. Allgemeine Java-Themen 4
Y JARs austauschen zur Laufzeit Allgemeine Java-Themen 11
G Datenbank zur laufzeit wechseln Allgemeine Java-Themen 11
C Innere Klassen zur Laufzeit Instanzieren Allgemeine Java-Themen 4
T Zur Laufzeit erben? Allgemeine Java-Themen 22
L HashMap / Objekte auf Festplatte zur Laufzeit auf HD swappen Allgemeine Java-Themen 7
L Zur Laufzeit eine Klasse laden, die auf jar-File zugreift Allgemeine Java-Themen 15
V Java-Programm weiss zur Laufzeit wie es gestartet wurde? Allgemeine Java-Themen 6
N Endlosschleifen automatisiert erkennen (Code oder Laufzeit)? Allgemeine Java-Themen 6
G Eindeutiges Identifizieren einer JTable/Component z.laufzeit Allgemeine Java-Themen 2
G Datei durchsuchen, lange Laufzeit! Allgemeine Java-Themen 2
A log4j 1.3 und ändern der log Konfiguration zur Laufzeit Allgemeine Java-Themen 4
Apo Zur Laufzeit Klassen mit Packages laden? Allgemeine Java-Themen 2
G genauen Typ einer generischen Klasse zur Laufzeit ermitteln Allgemeine Java-Themen 2
F Typ eines Objekts zur Laufzeit bestimmen? Allgemeine Java-Themen 8
T xverify-parameter : Workaround zur Laufzeit? Allgemeine Java-Themen 8
M Bibliotheksname zur Laufzeit ermitteln (Classloader) Allgemeine Java-Themen 7
G Klasse wird zur Laufzeit nicht gefunden? Allgemeine Java-Themen 3
@ zur Laufzeit Interface aus jar implementieren? Allgemeine Java-Themen 5
MQue Laufzeit Allgemeine Java-Themen 4
D Lautstärke einzelner AudioClips zur Laufzeit verändern Allgemeine Java-Themen 4
C Mathefunktion zur Laufzeit einlesen und dann verarbeiten Allgemeine Java-Themen 13
G Klassen zur Laufzeit einbinden Allgemeine Java-Themen 3
J Bibliotheken erst zur Laufzeit laden Allgemeine Java-Themen 5
byte Generic Type einer List zur Laufzeit rausfinden? Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben