Java如何执行批处理cmd命令并接收结果?

一、可以使用Runtime.getRuntime().exec("cmd /c dir");来执行操作。

二、如何获取执行的cmd命令的返回值?(以下源码由本人编写,已经完全测试。)

package com.莱迪娜的风声;



import java.io.IOException;

import java.io.InputStream;

import java.nio.charset.Charset;



/**

 * 2022年9月20日12:06:28

 * 在Java中 执行CMD命令,并获取结果。

 * @author 莱迪娜的风声 or 歌声

 *

 */

public class MyTest {

public static void main(String[] args) {

try {

// 获取执行命令的进程

Process exec = Runtime.getRuntime().exec("cmd /c dir");

// 这里再打个岔

// 就是 有些 教程 使用 cmd /k 的方式来执行 cmd 命令

// 不建议这样做

// Runtime.getRuntime().exec("cmd /k dir");

// 因为这种方式是相当于又启动了一个 cmd 命令窗口,我们是无法获取这个命令的结果的

// 在Java中执行也得不到结果,这是特别需要注意的,下面继续。

// 获取命令执行结果的输入流

// 注意这里的输入流,是将流输入到Java

InputStream inputStream = exec.getInputStream();

// 获取命令执行结果的错误输入流

InputStream errorStream = exec.getErrorStream();

// 接着读取输入流所有的字节

byte[] readAllBytes = inputStream.readAllBytes();

// 将字节流以 GBK 编码的方式读取为 String 字符串

String string = new String(readAllBytes,Charset.forName("GBK"));

// 错误输入流同样如是

byte[] readAllBytes2 = errorStream.readAllBytes();

String string2 = new String(readAllBytes2,Charset.forName("GBK"));

// 打印出结果。

System.out.println(string);

System.out.println(string2);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

如上,便可以执行 Java cmd 批处理命令,并得到你想要的结果。

时间:本文最后编辑于2022年9月20日12:14:27

这里是莱迪娜的风声 or 歌声,Java 热爱,热爱你的生活。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莱迪娜的风声

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值