![](/img/trans.png)
[英]Execute a shell command using processBuilder and interact with it
[英]Execute a command using ProcessBuilder from windows
当我尝试从 Windows 机器上的 java 程序执行以下行时,出现以下错误。
您能否让我知道使该工作有效的详细步骤?
final Process exec = new ProcessBuilder("bash", "-c", query).start();
错误:java.io.IOException:无法运行程序“bash”:CreateProcess 错误=2,系统找不到指定的文件
Windows 没有 bash,因此您必须使用“CMD”(命令)。 “bash”用于 unix 系统。
这应该适用于 Windows:
final Process exec = new ProcessBuilder("CMD", "/C", query).start();
如果你想要一个关于如何在 Windows 中使用 ProcessBuilder 的好例子: 使用 Java ProcessBuilder 类的外部程序
final Process exec = new ProcessBuilder("bash", "-c", query).start();
如错误所示,没有可执行程序 bash,通常 bash 安装在 Unix 系统上的 /bin/bash 位置,因此您必须提供程序的路径。 即使是相对路径也能工作。 下面的这个命令将在安装了 bash 的类似 Unix 的操作系统上工作。
final Process exec = new ProcessBuilder("/bin/bash", "-c", query).start();
/bin/bash 在 Windows 上不存在。 尝试用 cmd.exe 替换 /bin/bash,并用 /c 替换开关 -c
final Process exec = processBuilder("cmd.exe", "/c", query).start();
如果只是执行 bash 命令,则需要 java 的 bash 库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.