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指令。。。。

如何制作 Discord.py ping cmd

用Javascript调用cmd并执行命令

java 程序如何调用cmd调用java.exe 来运行.class文件

python 调用系统命令 获取结束状态

java如何执行cmd命令