Вот что-то немного проще, если вы просто пытаетесь получить вывод простой команды. Вам нужно будет использовать потоки, как это делает джиттер, если вы хотите обрабатывать параллельно, или если ваша команда принимает стандартный ввод или генерирует стандартный вывод.
Используйте буферизованную копию (например, this ), если вы получаете много выходных данных.
import java.io.*;
public class test {
static void copy(InputStream in, OutputStream out) throws IOException {
while (true) {
int c = in.read();
if (c == -1) break;
out.write((char)c);
}
}
public static void main(String[] args) throws IOException, InterruptedException {
String cmd = "echo foo";
Process p = Runtime.getRuntime().exec(cmd);
copy(p.getInputStream(), System.out);
p.waitFor();
}
}