急求;java调用window的cmd的ping指令。。。。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急求;java调用window的cmd的ping指令。。。。相关的知识,希望对你有一定的参考价值。

Runtime run = Runtime.getRuntime();
String cmdText="cmd.exe /k start ping "+strIpName;
Process process = run.exec(cmdText); 利用这个做了一个调用ping的程序,已经调出来了,就是,调出来这个dos框关闭之后,无法返回到前台界面。是不是少了条返回指令,急求

/k 指keep 不会结束cmd进程而会继续等输入
/c 指close 执行完即结束

故cmdText改为:String cmdText="cmd.exe /c start ping "+strIpName;
另外好像直接写cmdText = "ping "+strIpName不行吗?ping是外部命令好像不用非用cmd起吧。
-------------------------------------------
import java.io.InputStream;

public class Ping
public static void main(String[] args) throws Exception
Runtime run = Runtime.getRuntime();
String cmdText = "ping 127.0.0.1";
Process process = run.exec(cmdText);
process.waitFor();
byte[] buffer = new byte[256];
int cnt = 0;
InputStream is = process.getInputStream();
while((cnt=is.read(buffer))>=0)
System.out.print(new String(buffer,0,cnt));




测试可行
-----------------------

正在 Ping 127.0.0.1 具有 32 字节的数据:
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=128

127.0.0.1 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms
参考技术A 无法返回到前台界面? 参考技术B

//连同解决乱码问题。

public static void main(String[] args) throws IOException, InterruptedException

     // 执行ping命令

     String cmdPing = "ping www.baidu.com";

     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);

    

参考技术C /k
指keep
不会结束cmd进程而会继续等输入
/c
指close
执行完即结束
故cmdText改为:String
cmdText="cmd.exe
/c
start
ping
"+strIpName;
另外好像直接写cmdText
=
"ping
"+strIpName不行吗?ping是外部命令好像不用非用cmd起吧。
-------------------------------------------
import
java.io.InputStream;
public
class
Ping

public
static
void
main(String[]
args)
throws
Exception

Runtime
run
=
Runtime.getRuntime();
String
cmdText
=
"ping
127.0.0.1";
Process
process
=
run.exec(cmdText);
process.waitFor();
byte[]
buffer
=
new
byte[256];
int
cnt
=
0;
InputStream
is
=
process.getInputStream();
while((cnt=is.read(buffer))>=0)

System.out.print(new
String(buffer,0,cnt));



测试可行
-----------------------
正在
Ping
127.0.0.1
具有
32
字节的数据:
来自
127.0.0.1
的回复:
字节=32
时间<1ms
TTL=128
来自
127.0.0.1
的回复:
字节=32
时间<1ms
TTL=128
来自
127.0.0.1
的回复:
字节=32
时间<1ms
TTL=128
来自
127.0.0.1
的回复:
字节=32
时间<1ms
TTL=128
127.0.0.1

Ping
统计信息:
数据包:
已发送
=
4,已接收
=
4,丢失
=
0
(0%
丢失),
往返行程的估计时间(以毫秒为单位):
最短
=
0ms,最长
=
0ms,平均
=
0ms

Windows10不允许ping

解决办法:

cmd命令:启用下防百火墙规则——使用管理员权限的cmd运行下面这条命令就可以ping了。
netsh advfirewall firewall set rule name="文件和打印机共享内(回显请求 - ICMPv4-In)" new enable=yes

图形化:打开控制面板

技术图片

技术图片

 

 技术图片

 

以上是关于急求;java调用window的cmd的ping指令。。。。的主要内容,如果未能解决你的问题,请参考以下文章

windows常用cmd指令

用Javascript调用cmd并执行命令

怎么修改cmd 中ping命令的数据包大小?

打开cmd,然后在里面运行ping的命令 这条bat 怎么写?

Windows ❀ CMD中使用批量Ping网段命令教程

linux ip已经配好了也可以ping通,可是cmd ping就不同,linux下ping windows下IP也ping不同 如何解决?