Process ps = RunTime.getRuntime().exec("Command");
InputStream out = ps.getInputStream(); //获取进程的stdout,并作为输入
InputStream err = ps.getInputStream(); //获取进程的stderr,并作为输入
// 为了能同时输出out 与 err,起用两个线程
new Redirector(out, redirectOut).start();
new Redirector(err, redirectErr).start();
class Redirector extends Thread {
DataInputStream input;
PrintStream output;
public Redirector (InputStream is, OutputStream os) {
input = new DataInputStream (is);
output = new PrintStream(os);
}
public run() {
String line = null;
while(((line = input.readLine()) != null) {
output.println(line);
}
}
}
本文介绍了一种通过Java程序运行外部命令并同时捕获标准输出(stdout)和错误输出(stderr)的方法。通过创建两个线程分别处理stdout和stderr,可以实现实时显示命令执行过程中的所有输出。
1371

被折叠的 条评论
为什么被折叠?



