首页 新闻 会员 周边

java shell 实时输出结果

0
悬赏园豆:5 [待解决问题]

 用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"就不能返回结果。

求大神指教!!
214149306的主页 214149306 | 初学一级 | 园豆:3
提问于:2018-01-22 19:49
< >
分享
所有回答(1)
0

https://github.com/zeroturnaround/zt-exec 这个有完整的例子,封装了Runtime

2012 | 园豆:21230 (高人七级) | 2018-01-23 08:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册