前言
你多久没回家了呀,少年!
提示:以下是本篇文章正文内容,下面案例可供参考
一、简单介绍
日常开发中有时会遇到用 java 调用 cmd 进行一些操作,例如 ping、ipconfig等。
二、java调用cmd执行ipconfig命令
1.基础命令
- cmd /c dir 是执行完dir命令后关闭命令窗口。
- cmd /k dir 是执行完dir命令后不关闭命令窗口。
- cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。
- cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭
2.执行完毕后不关闭cmd页面
private static void cmdExec() {
try {
Runtime.getRuntime().exec("cmd /k start cmd.exe /k ipconfig");
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
执行结果
3.Runtime 直接打印输出
private static void runTimeExec() {
try {
// 调用CMD命令
String command = "ipconfig";
Process process = Runtime.getRuntime().exec(command);
// 获取命令输出结果
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "GBK")); // 设置编码为GBK
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待命令执行完成
process.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
}
执行结果
3.ProcessBuilder 直接打印输出
private static void processBuilderExec() {
try {
// 调用CMD命令
ProcessBuilder processBuilder = new ProcessBuilder("cmd.exe", "/c", "ipconfig");
// 将错误输出流与标准输出流合并
processBuilder.redirectErrorStream(true);
Process process = processBuilder.start();
// 获取命令输出结果
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "GBK"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待命令执行完成
process.waitFor();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
总结
养好受伤的头发,照顾好挑剔的胃和爱笑的眼睛,交一个能一路废话的朋友,给自己疲惫的生活找一个温柔的梦想