从Windows使用ProcessBuilder执行命令

时间:2014-01-20 10:31:34

标签: java windows process processbuilder

当我尝试在Windows机器上从我的java程序执行以下行时,我收到以下错误。

请您告诉我完成这项工作的详细步骤?

final Process exec = new ProcessBuilder("bash", "-c", query).start();
  

错误:java.io.IOException:无法运行程序“bash”:CreateProcess error = 2,系统找不到指定的文件

4 个答案:

答案 0 :(得分:9)

Windows没有bash,所以你必须使用“CMD”(命令)。 “bash”正在用于unix系统。

这适用于Windows:

final Process exec = new ProcessBuilder("CMD", "/C", query).start();

如果你想要一个很好的例子来说明如何在Windows中使用ProcessBuilder:External programs using Java ProcessBuilder class

答案 1 :(得分:1)

final Process exec = new ProcessBuilder("bash", "-c", query).start();

如错误所示,没有可执行程序bash,通常在位于/ bin / bash的Unix系统上安装bash,因此您必须提供程序的路径。 即使相对路径也有效。下面的命令可以在Unix上运行,如安装了bash的操作系统。

final Process exec = new ProcessBuilder("/bin/bash", "-c", query).start();

答案 2 :(得分:1)

/bin/bash 在 Windows 上不存在。尝试用 cmd.exe 替换 /bin/bash,并将开关 -c 替换为 /c

final Process exec = processBuilder("cmd.exe", "/c", query).start();

答案 3 :(得分:-1)

如果您只是执行bash命令,则需要java的bash库。