通过Java执行cmd命令可以使用Java的Runtime类或ProcessBuilder类来实现。下面是两种常用的方法:
- 使用Runtime类:import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ExecuteCmd {
public static void main(String[] args) {
try {
// 执行cmd命令
Process process = Runtime.getRuntime().exec("cmd /c dir");
// 获取命令输出结果
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待命令执行完成
int exitCode = process.waitFor();
System.out.println("Exit Code: " + exitCode);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}上述代码使用Runtime类的exec方法执行cmd命令,并通过输入流获取命令输出结果。可以根据需要修改cmd命令和处理输出结果的逻辑。
- 使用ProcessBuilder类:import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ExecuteCmd {
public static void main(String[] args) {
try {
// 构建命令
ProcessBuilder processBuilder = new ProcessBuilder("cmd", "/c", "dir");
processBuilder.redirectErrorStream(true);
// 执行命令
Process process = processBuilder.start();
// 获取命令输出结果
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待命令执行完成
int exitCode = process.waitFor();
System.out.println("Exit Code: " + exitCode);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}上述代码使用ProcessBuilder类构建cmd命令,并通过输入流获取命令输出结果。可以根据需要修改cmd命令和处理输出结果的逻辑。
这两种方法都可以实现通过Java执行cmd命令,可以根据具体需求选择适合的方法。在实际应用中,需要注意对命令参数进行合理的处理,以避免安全风险。