通过下面的代码,我可以执行并获取shell命令,并得到输出,但只有在进程结束后,我才能得到标准输出。如何在进程执行时获得实时输出
Process process = Runtime.getRuntime().exec(command);
// close process's output stream.
process.getOutputStream().close();
pIn = process.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(pin, "UTF-8");
bufferedReader = new BufferedReader(inputStreamReader);
String line = null;
while ((line = bufferedReader.readLine()) != null) {
this.buf.append(line + "\n");
}
process.waitfor();
2条答案
按热度按时间8mmmxcuj1#
您可以使用进程生成器读取执行命令的响应
wqlqzqxt2#
这里有一种方法可以通过将输出重定向到与java进程的输出相同的位置来真实的显示命令的输出。