Hallo,
habe folgenden Code:
Jetzt möchte ich folgendes erreichen:
Wenn Fehler, dann stderr zurückgeben; sonst stdin zurückgeben.
Wie mach ich das?!
Außerdem verstehe ich nicht ganz, warum der Output des externen Commands ein InputStream ist (hab ich so im Netz gefunden und es funktioniert; ich hätte mir den Output aber eher in stdout erwartet -> ???:L)
habe folgenden Code:
Java:
private BufferedReader runCommand(Runtime r, File cmd, String[] params, File workingdir) throws IOException
{
String[] cmdarray = new String[1 + params.length];
cmdarray[0] = cmd.getAbsolutePath();
for (int i = 0; i < params.length; i++) {
cmdarray[i+1] = params[i];
}
/*
System.out.println("STARTE PROZESS: ");
for (String s : cmdarray) {
System.out.println(s);
}
*/
Process p = r.exec(cmdarray, null, workingdir);
BufferedReader stdin = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedReader stderr = new BufferedReader(new InputStreamReader(p.getErrorStream()));
try {
p.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
return stdin;
}
Jetzt möchte ich folgendes erreichen:
Wenn Fehler, dann stderr zurückgeben; sonst stdin zurückgeben.
Wie mach ich das?!
Außerdem verstehe ich nicht ganz, warum der Output des externen Commands ein InputStream ist (hab ich so im Netz gefunden und es funktioniert; ich hätte mir den Output aber eher in stdout erwartet -> ???:L)