Java: Ein externes Programm ausfuehren
Wir verwenden die Klasse "Runtime" aus dem Packet "lang".
Mit ihr lassen sich innerhalb von
Java-Applikationen andere Programme aufrufen.
So können Programme des Betriebssystems verwendet werden.
Externe Programme werden mit der Objektmethode "exec()" der Klasse
"Runtime" gestartet. Um ein Objekt vom Typ "Runtime" zu erhalten, muß
mit der Singleton-Funktion "getRuntime()" das aktuell
verwendete Runtime-Objekt erfragt werden. Für ein Kommando "command" also:
Runtime.getRuntime().exec( command );
Die Methode "exec()" gibt ein Objekt vom Typ Process zurück.
Von diesem lassen sich die vom externen Programm verwendetetn
So liefert die Funktion "getInputStream()"
einen Eingabestrom, der direkt mit dem Ausgabestrom des externen Programms
verbunden ist.
Genau das Gleiche gilt für die Funktion "getErrorStream()", welche
die Fehlerausgaben des externen Programmes liefert.
Durch Schreiben in den Ausgabestrom, den
"getOutputStream()" liefert können wir das externe Programm mit
Daten füttern, welche dieses auf seiner Standardeingabe lesen kann.
Die folgene Klasse CmdExec benutzt dies alles.
import java.io.*; public class CmdExec { private String out; private String err; private int exit; public CmdExec() { out = ""; err = ""; exit = 0; } public String out () { return out; } public String err () { return err; } public int exit () { return exit; } public void exec(String cmd) throws IOException { String line; Runtime rt = Runtime.getRuntime(); Process process = rt.exec(cmd); try { process.waitFor(); } catch (InterruptedException e) { } BufferedReader procout = new BufferedReader( new InputStreamReader(process.getInputStream()) ); while ((line = procout.readLine()) != null) { out = out + line + "\n"; } BufferedReader procerr = new BufferedReader( new InputStreamReader(process.getErrorStream()) ); while ((line = procerr.readLine()) != null) { err = err + line + "\n"; } exit = process.exitValue(); } }Ausprobieren kann man diese Klasse mit dem folgenden kleinen Testprogramm:
import java.io.*; public class Test { public Test() {} public static void main(String argv[]) { CmdExec ce = new CmdExec(); try { ce.exec(argv[0]); } catch (Exception e) { System.err.println(e.toString()); } System.out.println("stderr " + ce.err()); System.out.println("stdout " + ce.out()); System.out.println("retval " + ce.exit()); } }
Alle Touren
Schneebergwege
- Bergrettungssteig
- Emmysteig
- Fadensteig
- Ferdinand Mayr-Weg
- Fischersteig
- Franz-Josef-Promenade
- Hotelries
- Hochgang
- Krummbachgraben
- Kuhschneeberg
- Kuhsteig
- Lärchkogelgrat
- Nandlgraben
- Nandlgrat
- Nandlgrat (Alter Nandlsteig)
- Niederlauf
- Novembergrat
- Nördlicher Grafensteig
- Oberer Herminensteig
- Stadelwandgraben
- Südlicher Grafensteig
- Waxriegel
- Weichtalklamm
Raxsteige
- Alpenvereinssteig
- Altenbergsteig
- Bärenlochsteig
- Brandschneide
- Camillo Kronich-Steig
- Gaisloch
- Gamsecksteig
- Gretchensteig
- Göbl Kühn-Steig
- Großes Fuchsloch
- Großes Wolfstal
- Großer Kesselgraben
- Ho Chi Minh Pfad
- Hoyossteig
- Karl Kantner-Steig
- Kaisersteig
- Kontruszsteig
- Kronich Eisenweg
- Martinsteig
- Peter Jokel-Steig
- Preinerwandsteig
- Raxenmäuersteig
- Reisstalersteig
- Rudolfsteig
- Schlangenweg
- Staudengraben
- Wildfährte
- Teufelsbadstubensteig
- Törlweg
- Waxriegelsteig
- Wachthüttelkamm
Geführte Touren
- Gösing Hoyos-Steig
- Gösing und Flatzer Wand
- Gösing Hoyos-Steig
- Kienberg und Himberg
- Flatzer Wand und Gösing
- Gösing Hoyos-Steig
- Gahns Saurüssel
- Rax mit Schneeschuhen
- Himberg und Kienberg
- Flatzer Wand und Gösing
- Gösing Hoyossteig
- Prettschachersteig und Krummbachstein
- Schneeberg Oktobergrat
- Gösing Hoyossteig
- Semmering Bahnwanderweg
- Miesenbach Biedermeierrunde
- Gösing Hoyossteig
- Rax mit Schneeschuhen
- Flatzer Wand und Gösing
- Gösing Hoyossteig
- Schneeberg Novembergrat
- Schneeberg Grafensteig und Hengst
- Schneeberg Nandlgrat
- Gösing Hoyossteig
- Gahns Saurüssel
- Biedermeierrunde Miesenbach
- Gösing Hoyossteig
- Gösing Hoyossteig
- Rax mit Schneeschuhen
- Gahns Saurüssel
- Rax mit Schneeschuhen
- Gösing Hoyossteig
- Schneeberg Novembergrat
- Krummbachstein
- Schneeberg Oktobergrat
- Schneeberg Alter Nandlsteig
- Schneeberg Herminensteig
- Gösing und Flatzer Wand
- Rax mit Schneeschuhen
- Gösing Hoyossteig
- Schneeberg_Novembergrat
- Schneeberg Alter Nandlsteig
- Schneeberg Herminensteig
- Schneeberg Brandmauer und Stadelwand
- Schneeberg und Hengst
- Gösing Hoyos-Steig
- Rax mit Schneeschuhen
- Schneeberg Herminensteig und Hengst
- Schneeberg Novembergrat
- Schneeberg Herminensteig
- Schneeberg Herminensteig
- Schneeberg Alter Nandlsteig
- Miesenbach Biedermeierrunde
- Flatzer Wand und Gösing
- Dürre Leiten mit Schneeschuhen
- Rax mit Schneeschuhen
- Dürre Leiten mit Schneeschuhen
- Schneeberg Brandmauer
- Schneeberg Novembergrat
- Miesenbach Biedermeierrrunde
- Gahns Eng und Saurüssel mit Schneeschuhen
- Kuhschneeberg mit Schneeschuhen
- Novembergrat
- Nördlicher Grafensteig und Hengst
- Miesenbach Biedermeierrunde
- Flatzer Wand und Gösing
- Großes Wolfstal
- Alter Nandlsteig
- Herminensteigvariationen
- Gahns Saurüssel mit Schneeschuhen
- Dürre Leiten mit Schneeschuhen
- Kuhschneeberg mit Schneeschuhen
- Flatzer Wand und Gösing
- Großes Wolfstal
- Alter Nandlsteig
- Biedermeierrunde in Miesenbach
- Gahns Saurüssel und Eng