Java代码调用cmd中的ping命令.如何获得ping返回的信息?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java代码调用cmd中的ping命令.如何获得ping返回的信息?相关的知识,希望对你有一定的参考价值。
我在Java里执行cmd命令: Process p = Runtime.getRuntime().exec("ping -w " + timeout + " " + "www.usc.edu");
目的是Ping一下与"www.usc.edu"的连接情况
我在cmd里面测试是,问题是如何获得其中的信息,比如 Lost Average ???
求助!我Linux和C都不好,请教!
public static void main(String[] args) throws IOException, InterruptedException
// 执行ping命令
String cmdPing = "ping 127.0.0.1";
Runtime run = Runtime.getRuntime();
Process process = run.exec(cmdPing);
process.waitFor();
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream(), Charset.forName("GBK")));
String line = null;
while ((line = br.readLine()) != null)
System.out.println(line);
参考技术A 你应该看看api process 返回的是流,按照输出流的方法操作即可.公司上不去外网,有代理才行,所以没有ping 百度,ping的本机.
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class CallCmd
public static void main(String[] args)
BufferedReader br = null;
try
Process p = Runtime.getRuntime().exec("ping 127.0.0.1");
br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
StringBuilder sb=new StringBuilder();
while ((line = br.readLine()) != null)
sb.append(line+"\n");
System.out.println(sb.toString());
catch (Exception e)
e.printStackTrace();
finally
if (br != null)
try
br.close();
catch (Exception e)
e.printStackTrace();
本回答被提问者和网友采纳
c语言下抓取cmd中的字符
在cmd中ping 192.168.1.1, ping通后怎样用c语言程式抓取回复的结果
参考技术A 应该不能,你这是用一个程序去抓取另一个程序输出的数据,除非调用很底层的驱动(具体我也不会)。一个程序是一个进程,进程间通信可以用管道。但要要求两个程序都是你自己编写。
有个办法,性能稍微低一点,就是先执行 ping 192.168.1.1 >> tmp.txt ,然后第二个程序读取tmp.txt文件 参考技术B ,可以调用libpcap或者winpcap,你仔细查一下他们的相关函数,因为太多了,网上写的也比较详细,但是这个需要在你的运行环境中安装该库。本回答被提问者采纳
以上是关于Java代码调用cmd中的ping命令.如何获得ping返回的信息?的主要内容,如果未能解决你的问题,请参考以下文章
急求;java调用window的cmd的ping指令。。。。