Java ProcessBuilder在linux中执行git时返回退出错误128(某些git命令工作正常)

Java ProcessBuilder在linux中执行git时返回退出错误128(某些git命令工作正常),java,linux,git,processbuilder,Java,Linux,Git,Processbuilder,我尝试用JavaProcessBuilder执行的简单git命令,在linux中运行时会找到它,并返回结果。 这是命令: git -C /home/mlxx log -1 "72xxxxxxxxe700d6bbe06" --pretty=format:"%s" 当我尝试用java执行它时 ProcessBuilder pb = new ProcessBuilder() .command("git","-C","/home/mlxx","log","1",

我尝试用JavaProcessBuilder执行的简单git命令,在linux中运行时会找到它,并返回结果。 这是命令:

git -C /home/mlxx log -1 "72xxxxxxxxe700d6bbe06" --pretty=format:"%s"
当我尝试用java执行它时

ProcessBuilder pb = new ProcessBuilder()
                    .command("git","-C","/home/mlxx","log","1","72xxxxxxxxe700d6bbe06","--pretty=format:\"%s\"").directory("/bin/bash");
int exit=p.waitFor();返回128个错误代码

现在根据这个链接: 他们面临同样的问题

我试着做:

ProcessBuilder pb = new ProcessBuilder()
                        .command("/usr/bin","-c""git","-C","/home/mlxx","log","1","72xxxxxxxxe700d6bbe06","--pretty=format:\"%s\"")
int exit=p.waitFor();返回1个错误c0de

这里怎么了


其他命令在linux中通过java正常工作?

您正在指定
/bin/bash
作为进程的工作目录:

[...] .directory("/bin/bash");
这是一个可执行文件,不是有效的目录


您可以完全不使用它,因为您已经指定了目录
git
应该使用它的
-C
选项进行操作。

这是一个stype错误,我将其修复为/usr/bin,但我会有错误