用java代码执行shell命令,怎样能实时获取shell命令执行的结果,而不是等到shell命令执行完才返回结果。
String command = "ping 192.168.129.220";
Process ps = Runtime.getRuntime().exec(command);
或者
String command = "ping 192.168.129.220";
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ByteArrayOutputStream errorStream = new ByteArrayOutputStream();
PumpStreamHandler streamHandler = new PumpStreamHandler(outputStream,errorStream);
CommandLine commandline = CommandLine.parse(command);
DefaultExecutor exec = new DefaultExecutor();
exec.setExitValues(null);
exec.setStreamHandler(streamHandler);
exec.execute(commandline);
windows环境,有返回结果,但不是实时的,是一次性返回所有的结果。
当执行 "ping 192.168.129.220 -t"就不能返回结果。
求大神指教!!
https://github.com/zeroturnaround/zt-exec 这个有完整的例子,封装了Runtime