Java如何打开cmd命令窗

在Java中,可以使用ProcessBuilder类来打开cmd命令窗。ProcessBuilder类提供了一种创建子进程的方式,并可以通过该子进程执行命令。

步骤

下面是使用Java打开cmd命令窗的步骤:

  1. 创建一个ProcessBuilder对象,并传入要执行的命令参数。
ProcessBuilder processBuilder = new ProcessBuilder("cmd.exe");
  1. 调用start()方法来启动子进程。
Process process = processBuilder.start();
  1. 可选:通过getOutputStream()方法获取输出流,通过getInputStream()方法获取输入流,以便与子进程进行通信。
OutputStream outputStream = process.getOutputStream();
InputStream inputStream = process.getInputStream();
  1. 可选:通过输出流向子进程发送命令。
outputStream.write("dir\n".getBytes());
outputStream.flush();
  1. 等待子进程执行完毕,并获取执行结果。
int exitCode = process.waitFor();
  1. 可选:通过输入流读取子进程的输出结果。
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
    System.out.println(line);
}
  1. 关闭输入流、输出流和子进程。
outputStream.close();
inputStream.close();
process.destroy();

完整示例

下面是一个完整的Java程序示例,演示如何打开cmd命令窗并执行命令。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;

public class CmdExample {
    public static void main(String[] args) {
        try {
            // 创建ProcessBuilder对象
            ProcessBuilder processBuilder = new ProcessBuilder("cmd.exe");

            // 启动子进程
            Process process = processBuilder.start();

            // 获取输入流和输出流
            OutputStream outputStream = process.getOutputStream();
            InputStream inputStream = process.getInputStream();

            // 发送命令
            outputStream.write("dir\n".getBytes());
            outputStream.flush();

            // 读取输出
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }

            // 等待子进程执行完毕
            int exitCode = process.waitFor();

            // 关闭输入流、输出流和子进程
            outputStream.close();
            inputStream.close();
            process.destroy();

        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

类图

下面是使用mermaid语法表示的该示例程序的类图:

classDiagram
    class CmdExample{
        +main(String[] args): void
    }

以上就是使用Java打开cmd命令窗的步骤以及完整示例。通过这些代码,你可以在Java程序中打开cmd命令窗,并执行相应的命令。