System und Runtime
System und Runtime bilden die Schnittstelle der Java-VM mit dem Betriebssystem. Sie bieten daher eine Vielzahl von nützlichen Methoden, die sich leider wenig zusammenhängend zeigen:
System.out und System.err sind zwei java.io.PrintStreams,die auf die entsprechenden Ausgabestreams (Systemausgabe und Systemerror) des Betriebssystems weisen. System.in liest von der Konsole. Um diese Objekte kennenzulernen lesen Sie bitte da Kapitel über Streams.
System.currentTimeMillis() liefert den aktuellen Unix-Zeitstempel, das ist die Anzahl der verstrichenen Millisekundenseit dem 1.1.1970 zurück. Wer's noch genauer braucht kann auch das neue System.nanoTime() verwenden.
System.exit(int value); beende die VM, wobei ein Integer-Wert "value" an das Betriebssystem übergeben. Auf den meisten Systemen wird die Null „0" hier als ordnungsgemäßes Ende des Programms verstanden, alle anderen Werte weisen auf einen Fehler hin.
System.getenv(..) (seit Java 1.5) stellt die Umgebungsvariablen des Betriebssystems zur Verfügung, System.getProperties() holt die Variablen der Java-VM. Bitte beachten Sie folgendes Beispiel.
Die Klasse Runtime wird über eine sogenannte Factory -Methode (Runtime.getRuntime()) instanziert. Sie wird verwendet, um einen Prozess des Betriebssystems zu starten, also ein anderes Programm auszuführen. Das Beispiel zeigt, wie ein solcher Prozess gestartet und die Ausgabe des Prozesses eingelesen wird:
Einzelheiten zum Lesen von Streams entnehmen sie bitte dem Kapitel über Streams. Sie erkennen die Runtime#exec(String) Methode, die einen Process startet. Ein gleichnamiges Java-Objekt repräsentiert den Prozess und wird benutzt, um den Eingabestream des Prozesses zu erhalten. Die Klasse java.lang.Process selbst ist nicht wirklich aufregend. Sie bietet neben dem Zugriff auf die drei Streams auch den Zugriff auf den Rückgabewert des Programms an. Neu in Java 1.5 ist die Klasse java.lang.ProcessBuilder, die ebenfalls Prozesse startet und einen Erstatz für Runtime#exec(..) darstellt. Sie bietet etwas feinere Einstellmöglichkeiten in Bezug auf die Umgebung des zustartenden Prozesses.