我得到了一个示例ping程序,稍作修改......
String ip = "192.168.1.1 -t";
String pingResult = "";
String pingCmd = "ping " + ip;
try{
Runtime r = Runtime.getRuntime();
Process p = r.exec(pingCmd);
Pattern pattern = Pattern.compile("time=(\\d+)ms");
Matcher m = null;
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
m = pattern.matcher(inputLine);
if (m.find()) {
System.out.println(m.group(1));
}
}
in.close();
}
catch (IOException e) {
System.out.println(e);
}
我将实现一个包含启动和退出按钮的GUI,启动按钮可以工作,但退出按钮不会。单击退出按钮时,程序不显示rtt时间输出。但该程序实际上并没有退出/停止。我怎么完全关闭它,我会添加像Runtime.getRuntime().addShutdownHook
这样的东西。
需要一些提示和指导,谢谢先进......
答案 0 :(得分:0)
您可以使用ping的-n
参数,然后再次启动或在用户需要停止时停止。
Process
还有一个OutputStream。如果要停止ping,可以尝试发送Ctrl-C。
答案 1 :(得分:0)
boolean isStoped=false;
while ((inputLine = in.readLine()) != null && (!isStoped)) {
m = pattern.matcher(inputLine);
if (m.find()) {
System.out.println(m.group(1));
}
}
单击退出按钮时,生成isStoped=true
并致电p.destroy()
。希望这会对你有所帮助。