一、可以使用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 热爱,热爱你的生活。