我有大约需要 4 分钟才能完成执行的命令。从 windows 命令提示符执行命令时,它会显示计时信息和连续输出。
我想在从我的 Java 代码运行命令时显示该输出。正常执行等到命令退出并获取输出。我想在运行时获得输出而不等待命令完成。
这是我的代码:
try{
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(args);
String line="";
BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
}
input.close();
BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
errorReader.lines().forEach(System.out::println);
process.waitFor();
System.out.println("---------------------------------------");
}
catch (Exception x){
System.out.println(x.getMessage());
}
这段代码的问题在于它会在命令结束之前立即打印所有输出。