使用 ProcessBuilder 类

ProcessBuilder 类使通过命令行轻松发送命令。它只需要一个组成要输入的命令的字符串列表。你只需在 ProcessBuilder 实例上调用 start() 方法即可执行该命令。

如果你有一个名为 Add.exe 的程序,它接受两个参数并添加它们,代码看起来像这样:

List<String> cmds = new ArrayList<>();
cmds.add("Add.exe"); //the name of the application to be run
cmds.add("1"); //the first argument
cmds.add("5"); //the second argument

ProcessBuilder pb = new ProcessBuilder(cmds);

//Set the working directory of the ProcessBuilder so it can find the .exe
//Alternatively you can just pass in the absolute file path of the .exe
File myWorkingDirectory = new File(yourFilePathNameGoesHere);
pb.workingDirectory(myWorkingDirectory);

try {
    Process p = pb.start(); 
} catch (IOException e) {
    e.printStackTrace();
}

要注意的一些事项:

  • 命令数组必须都是 String 数组
  • 如果你在命令行中调用程序,命令必须按顺序(在数组中)(即 .exe 的名称不能在第一个参数之后)
  • 设置工作目录时,需要传入 File 对象而不仅仅是文件名作为 String