当我尝试在Windows机器上从我的java程序执行以下行时,我收到以下错误。
请您告诉我完成这项工作的详细步骤?
final Process exec = new ProcessBuilder("bash", "-c", query).start();
错误:java.io.IOException:无法运行程序“bash”:CreateProcess error = 2,系统找不到指定的文件
答案 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库。