我的java方法如下所示:
private String executeCommand(String command) {
StringBuffer output = new StringBuffer();
String line = "";
Process proc;
try {
proc = Runtime.getRuntime().exec(command);
InputStream inputStream = proc.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
proc.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
return output.toString();
}
如果我发送小命令,如" ls -l"它执行命令并打印结果。但是我需要这个函数来读取运行数天的应用程序的输出,它会在运行时频繁打印输出。所以我不能等到应用程序完成"我需要实时输出。任何人都知道如何立即打印输出?谢谢你的帮助......
答案 0 :(得分:1)
最简单的方法是将命令的输出直接重定向到文件:
ls -l > ./ls.output
在这种情况下,您无需等待命令结束。它将是操作系统来处理输出重定向到文件。
如果您还需要为错误编写输出,则需要如下命令:
ls -l > ./ls.output 2> ./ls.err
其中./ls.output
是正常输出,./ls.err
是错误输出