Java Runtime -Klasse bietet Zugriff auf die Laufzeitumgebung , in dem die Anwendung läuft. Laufzeit der exec Methoden können Sie externe Programme aus einer Java -Anwendung ausführen . Ausführen externer Anwendungen in einer Java- Anwendung ermöglicht es Ihnen , eine Web- Seite in einem Browser öffnen , interagieren mit Betriebssystem-Dienstprogramme oder starten Sie eine Konsole . Holen Sie sich das Runtime Environment
Alle Java-Anwendungen über eine Instanz der Laufzeitumgebung . Verwenden Sie die Runtime getRuntime ()-Methode , um dieses Objekt zuzugreifen. Zum Beispiel:
Runtime rt = Runtime.getRuntime ();
Ausführen einer externen Anwendung
Runtime bietet mehrere Möglichkeiten, um die exec -Methode aufrufen, das gibt ein Process-Objekt . Der einfachste Weg , um eine externe Anwendung auszuführen ist die Runtime -Methode exec (String command) , wo "command" ist die Befehlszeile , die die Anwendung ausführt . Der folgende Aufruf führt den Befehl "ls" , eine Verzeichnisliste für das Root- Verzeichnis auf einem Linux -oder Unix- System zu erhalten :
Prozess p = rt.exec ( " ls /");
die exec -Methode kann auch mit einem Array mit dem Befehl und seine Argumente , Umgebungsvariablen und Arbeitsverzeichnis aufgerufen werden.
Get Process Informationen
Der Prozess Klasse bietet Zugriff auf die Input-Streams , Ausgabe-Stream , Stream Fehler und Ausfahrt Wert der ausgeführten Prozess .
Process.getInputStream Verfahren ermöglicht den Zugriff auf den Prozess " Standard- Ausgabe-Stream durch Ihre Anwendung Input-Stream . Der Stream gepuffert werden soll . Ausgehend vom vorherigen Beispiel greift der folgende Code die Ausgabe von den " ls /" Befehl druckt die Ergebnisse für das
InputStream istrm = p.getInputStream (); . InputStreamReader istrmrdr = new InputStreamReader ( istrm ); BufferedReader buffrdr = new BufferedReader ( istrmrdr );
String Daten; while (( data = buffrdr.readLine ()) = null ) { System.out.println ( data); }
Ähnlich Sie können den Fehler mit Strom Prozess ' getErrorStream und Verwendung einer gepufferten Input-Stream , um die Daten zu verarbeiten erfassen . Ihre Anwendung kann auch Daten an den Prozess " Input-Stream über Ihre Anwendung die Ausgabe -Stream. Verwenden Prozess ' getOutputStream Verfahren und puffern die Ausgabe-Stream .
Beenden
Capture the exit Wert der Prozess mit Prozess' exitValue Methode, um festzustellen, ob es in der Regel verlassen . Der Prozess beendet wurde Sicherstellen Verwendung Prozess ' waitFor Methode, um den aktuellen Thread dazu führen, dass für den Prozess zu beenden warten. Beispielsweise erfassen die Ausfahrt Wert in einer Variablen , die später verwendet werden , um Entscheidungen darüber, wie Ihre Anwendung vorgehen:
int ev = 0; if (! P.waitFor () = 0 ) { ev = p.exitValue ();}
Ein Prozess kann getötet Verwendung Prozess ' zerstören Verfahren
Überlegungen
Java 5 eingeführt, die ProcessBuilder Klasse Runtime.exec ersetzen . ProcessBuilder macht es einfacher, den Prozess anpassen und bietet eine bessere Kontrolle über den Prozess ab .
Warnungen
Eines der wichtigsten Merkmale der Programmiersprache Java ist seine Portabilität zu mehreren Computer-Plattformen . Aufruf externer Prozesse , die spezifisch für ein bestimmtes Betriebssystem sind hält Ihre Anwendung nicht tragbar. Vermeiden Sie die Verwendung Runtime.exec , wenn eine Methode zum Erreichen des gleichen Ziel besteht in der Programmiersprache Java .