Updatesystem

vinno

Mitglied
Hey,
ich möchte ein kleines Programm programmieren, das sich selbst updatet. Das dachte ich mir folgendermaßen:
Java:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

public class updates {
    public updates() throws IOException {
        ArrayList<String> code = new ArrayList<String>(10);
        BufferedReader br = new BufferedReader(new FileReader("Update.txt"));
        br.readLine();
        int line = Integer.valueOf(br.readLine());
        while(line > 0) {
            code.add(br.readLine());
            line --;
        }
        br.close();
        BufferedWriter bw = new BufferedWriter(new FileWriter("updates.java"));
        line = code.size();
        int i = 0;
        while(line > 0) {
            bw.write((code.get(i)));
            System.out.println(code.get(i));
            i++;
            line --;
        }
    }
    public static void main(String[] args) throws IOException {
            updates u = new updates();
    }
}
Ich bekomme dabei keinen Error und der gesamte Code wird auch in der Arraylist gespeichert, aber nicht in die .java eingefügt. Die Datei wird nur geleert. Könnte man das Problem einfach lösen oder könnte mir jemand erklären, wie man so ein Updatesystem umsetzen kann?
 

Joose

Top Contributor
..... oder könnte mir jemand erklären, wie man so ein Updatesystem umsetzen kann?

Normalerweise wird bei einem Update nicht nur ein Teil einer Java Datei ausgetauscht, damit das Update da wirksam wird müsstest du diesen Code auch wieder kompilieren. Das alles auf dem Client PC auszuführen der vielleicht nicht mal einen Java Compiler hat ist eine schlecht Wahl.

Es werden komplette JARS ausgetauscht. Da ein Programm aber während es läuft nicht seine eigene JAR Datei entfernen und durch eine neuere ersetzen kann helfen sich die meisten mit einem 2.Programm
Diese 2.Programm wird vom eigentlichen Programm gestartet wenn ein Update verfügbar ist. Das 2.Programm ladet das neue JAR herunter und kopiert es einfach über das alte drüber und startet dann das Programm wieder.
 

Dompteur

Top Contributor
Hey, ich möchte ein kleines Programm programmieren, das sich selbst updatet. Das dachte ich mir folgendermaßen:
Wie bereits bemerkt wurde, reicht es nicht aus, nur das *.java File auszutauschen.
Du musst das auch übersetzen und dann dynamisch laden.
Das bedeutet, dass ein JRE nicht reicht. Du brauchst ein JDK auf der Maschine.

Hier 2 Links zum Weiterlesen:
http://www.rgagnon.com/javadetails/java-0039.html - dynamisches Erzeugen, Compilieren und Starten von Java-Code
http://www.toptal.com/java/java-wizardry-101-a-guide-to-java-class-reloading - eigener Class-Loader zum Nachladen deiner veränderten Klasse.
 

Neue Themen


Oben