0

我无法从 Java 运行一个简单的 bash 脚本。具体来说:

...

try{
ProcessBuilder pb = new ProcessBuilder("/bin/bash", "-c", command);
pb.directory(new File(dir));
Process shell = pb.start();
int exitVal = shell.waitFor();

... 其中 'command' 是所有人都可以执行的 bash 脚本的绝对路径,而 'dir' 是工作目录。

当我运行我的程序时,我得到一个退出代码 127(“找不到命令”)。我尝试过使用 Java Runtime 类和 process.exec 方法,但都没有为我工作。有什么建议么?

4

2 回答 2

0

没有-c。这意味着脚本是-c 的参数。您正在向它传递一个路径名,并且您没有为此使用 -c 。

于 2010-02-13T20:07:24.843 回答
0

如果“command”是一个 bash 脚本,那么不要将“/bin/bash”(以及您正在做的错误的“-c”)传递给 ProcessBuilder,只需确保该命令是可执行的(chmod +x 命令),第一行是#!/bin/bash,然后将它的完整路径传递给 ProcessBuilder。

于 2010-02-13T20:15:05.757 回答