Hallo allerseits.
Ich stehe vor der Aufgabe, einem Javaprogramm eine automatische Updatefunktion zu spendieren.
Mein Java-Programm kontaktiert zum Programmstart einen Internetserver und lässt sich die aktuelle Versionsnummer geben.
Gibt es eine neuere Version, soll diese heruntergeladen und gespeichert werden; danach die laufende alte Version beendet und gelöscht, sowie die neue gestartet werden. Als Besonderheit liegt das Update nicht als .jar auf dem Server, sondern in codierter Form, muss also vom laufenden Programm vor dem Speichern noch decodiert werden.
Der Abruf der Versionsnummer funktioniert problemlos mit:
Ich möchte nun von http://xyserver.de/update.dat das Update laden, bearbeiten und auf Clientseite speichern.
Wie stelle ich das an?
Mit dem zeilenweisen BufferedReader gibt das Müll, und ein FileReader ist für lokale Daten...
Wie kann ich einen URL anstelle eines lokalen Filenamen übergeben?
Für ein Stückchen Code zum Einlesen einer Datei im Netz via URL in ein Byte-Array wäre ich dankbar.
Ich stehe vor der Aufgabe, einem Javaprogramm eine automatische Updatefunktion zu spendieren.
Mein Java-Programm kontaktiert zum Programmstart einen Internetserver und lässt sich die aktuelle Versionsnummer geben.
Gibt es eine neuere Version, soll diese heruntergeladen und gespeichert werden; danach die laufende alte Version beendet und gelöscht, sowie die neue gestartet werden. Als Besonderheit liegt das Update nicht als .jar auf dem Server, sondern in codierter Form, muss also vom laufenden Programm vor dem Speichern noch decodiert werden.
Der Abruf der Versionsnummer funktioniert problemlos mit:
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
public static String getVersion(){
String version="";
try {
URL url = new URL("http://xyserver.de/versioncheck.php");
URLConnection connection = url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
version = in.readLine(); //ist nur eine Zeile
} catch (IOException e) { System.out.println(e); }
return version;
}
Ich möchte nun von http://xyserver.de/update.dat das Update laden, bearbeiten und auf Clientseite speichern.
Wie stelle ich das an?
Mit dem zeilenweisen BufferedReader gibt das Müll, und ein FileReader ist für lokale Daten...
Wie kann ich einen URL anstelle eines lokalen Filenamen übergeben?
Für ein Stückchen Code zum Einlesen einer Datei im Netz via URL in ein Byte-Array wäre ich dankbar.