下面就来详细讲解一下“Java 执行 CMD 命令或执行 BAT 批处理方式”的攻略。
1、执行 CMD 命令的示例
1.1、使用 Runtime 类执行
Java 中可以使用 Runtime 类来执行 CMD 命令或执行 BAT 批处理。下面是一个简单的示例程序,演示如何使用 Runtime 类执行 CMD 命令:
import java.io.IOException;
public class CmdCommandExample {
public static void main(String[] args) {
try {
// 执行 ipconfig 命令
Process process = Runtime.getRuntime().exec("ipconfig");
// 获取执行结果
StringBuilder result = new StringBuilder();
int len;
byte[] buffer = new byte[1024];
while ((len = process.getInputStream().read(buffer)) != -1) {
result.append(new String(buffer, 0, len, "GBK"));
}
System.out.println(result);
} catch (IOException e) {
e.printStackTrace();
}
}
}
上述示例中,我们通过 Runtime.getRuntime().exec("ipconfig")
执行了 ipconfig
命令,并通过 process.getInputStream()
获取了执行结果。
1.2、使用 ProcessBuilder 类执行
另外一个执行 CMD 命令的方式是使用 ProcessBuilder 类,下面是一个示例程序:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class CmdCommandExample2 {
public static void main(String[] args) {
try {
// 构造 CMD 命令
List<String> command = new ArrayList<>();
command.add("cmd");
command.add("/c");
command.add("ipconfig");
ProcessBuilder pb = new ProcessBuilder(command);
// 执行 CMD 命令
Process process = pb.start();
// 获取执行结果
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream(),"GBK"));
StringBuilder result = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
result.append(line).append("\n");
}
br.close();
System.out.println(result);
} catch (IOException e) {
e.printStackTrace();
}
}
}
上述示例中,我们使用 ProcessBuilder
类构造了 CMD 命令,并且通过 process.getInputStream()
获取了执行结果。
2、执行 BAT 批处理的示例
下面是一个使用 Runtime 类执行 BAT 批处理的示例程序:
import java.io.IOException;
public class BatCommandExample {
public static void main(String[] args) {
try {
// 执行 batch.bat 批处理
Process process = Runtime.getRuntime().exec("cmd /c start batch.bat");
process.waitFor();
// 获取执行结果
StringBuilder result = new StringBuilder();
int len;
byte[] buffer = new byte[1024];
while ((len = process.getInputStream().read(buffer)) != -1) {
result.append(new String(buffer, 0, len, "GBK"));
}
System.out.println(result);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
上述示例中,我们通过 Runtime.getRuntime().exec("cmd /c start batch.bat")
执行了 batch.bat
批处理文件,并通过 process.getInputStream()
获取了执行结果。
总结:以上就是 Java 执行 CMD 命令或执行 BAT 批处理的完整攻略,可以根据自己的需求使用 Runtime 类或 ProcessBuilder 类来执行 CMD 命令或 BAT 批处理文件,并通过 process.getInputStream()
来获取执行结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 执行CMD命令或执行BAT批处理方式 - Python技术站