Hallo Forum
Ich habe ein kleines Shellscript gebastelt und wollte dieses über ein Java-Programm zur Ausführung bringen.
Über die Kommandozeile würde ich das normalerweise so machen:
Der dazugehörige Java Code sieht so aus:
Leider ist die Ausgabe meines Programms nicht das des Shell-Scripts, sondern der meiner Fehlerbehandlung:
Liegt es u.U. daran, daß da ein Blank escaped werden muß, oder ist der Fehler ein anderer? Ich würde mich freuen, wenn mir jemand darauf eine Antwort geben könnte.
Viele Grüße,
Semo
Ich habe ein kleines Shellscript gebastelt und wollte dieses über ein Java-Programm zur Ausführung bringen.
Über die Kommandozeile würde ich das normalerweise so machen:
Code:
~$: sh PingUptime.sh
Der dazugehörige Java Code sieht so aus:
Java:
package uptime;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
public class Uptime {
public static void main(String[] args) {
try {
// holt Informationen ueber die Laufzeitumgebung und beinhaltet kann
// somit das Interface des OS benutzen.
Runtime rt = Runtime.getRuntime();
// Elternprozess proc wird gestartet und invoked einen Kindprozesses
// und der wird weiter geforkt mittels Starten eines weiteren
// Kind-Prozesses "sh pingUptime.sh"
Process proc = rt.exec("sh pingUptime.sh");
// holt ggf. Medlungen aus der Pipe des Fehlerstroms und schreibt
// sie in den Eingabestrom der JVM
InputStream stderr = proc.getErrorStream();
BufferedReader br = new BufferedReader(
new InputStreamReader(stderr));
String line = null;
while ((line = br.readLine()) != null)
System.out.println(line);
int exitVal = proc.waitFor();
if (exitVal == 2) {
System.out.println("Process exitValue = 2: File not Found");
} else {
System.out.println("Process exitValue: " + exitVal);
}
} catch (Throwable t) {
t.printStackTrace();
}
}
}
Leider ist die Ausgabe meines Programms nicht das des Shell-Scripts, sondern der meiner Fehlerbehandlung:
sh: Can't open pingUptime.sh
Process exitValue = 2: File not Found
Liegt es u.U. daran, daß da ein Blank escaped werden muß, oder ist der Fehler ein anderer? Ich würde mich freuen, wenn mir jemand darauf eine Antwort geben könnte.
Viele Grüße,
Semo