繁体   English   中英

从 Windows 使用 ProcessBuilder 执行命令

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM