Java执行CMD设置工作目录

在Java开发中,有时候我们需要使用CMD命令来执行一些操作,比如启动其他应用程序或执行一些系统命令。在执行CMD命令时,有时候需要指定一个特定的工作目录,以确保命令能够在正确的环境下执行。本文将介绍如何使用Java代码执行CMD命令并设置工作目录。

使用Java执行CMD命令

Java中可以通过Runtime.getRuntime().exec()方法来执行CMD命令。下面是一个简单的例子,演示如何使用Java代码执行CMD命令并输出结果:

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

public class CmdExecutor {
    public static void main(String[] args) throws IOException {
        Process process = Runtime.getRuntime().exec("cmd /c dir");

        InputStream inputStream = process.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }

        process.destroy();
    }
}

上面的代码中,Runtime.getRuntime().exec("cmd /c dir")会执行CMD命令dir,并返回一个Process对象。通过该对象,我们可以获取命令的输入流,并将其输出到控制台。最后,使用process.destroy()方法销毁进程。

设置工作目录

在上面的例子中,我们执行的CMD命令是在Java程序所在的当前目录下执行的。如果我们希望将工作目录设置为其他路径,可以使用ProcessBuilder类的directory()方法。下面是一个示例,展示如何设置CMD命令的工作目录:

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

public class CmdExecutor {
    public static void main(String[] args) throws IOException {
        ProcessBuilder builder = new ProcessBuilder("cmd", "/c", "dir");
        builder.directory(new File("C:\\path\\to\\directory"));

        Process process = builder.start();

        InputStream inputStream = process.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

        String line;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }

        process.destroy();
    }
}

上面的代码中,我们使用ProcessBuilder类创建一个CMD命令的进程,并通过directory()方法设置工作目录为C:\path\to\directory。然后,我们使用start()方法启动进程并执行CMD命令。

总结

在Java中执行CMD命令是很常见的需求,通过Runtime.getRuntime().exec()ProcessBuilder类,我们可以轻松地执行CMD命令并获取输出结果。如果需要设置命令的工作目录,可以使用ProcessBuilder类的directory()方法来实现。希望本文能帮助你在Java中执行CMD命令并设置工作目录。

参考

  • [Java - Executing shell commands](
  • [java.lang.ProcessBuilder](