当前位置: 代码迷 >> java >> Java ProcessBuilder返回退出错误128,在Linux中执行git(一些git命令可以正常工作)
  详细解决方案

Java ProcessBuilder返回退出错误128,在Linux中执行git(一些git命令可以正常工作)

热度:57   发布时间:2023-07-31 11:31:42.0

我尝试使用java ProcessBuilder执行简单的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出口= p.waitFor(); 返回128个错误代码

现在根据此链接: 它面临相同的问题

我试图做:

ProcessBuilder pb = new ProcessBuilder()
                        .command("/usr/bin","-c""git","-C","/home/mlxx","log","1","72xxxxxxxxe700d6bbe06","--pretty=format:\"%s\"")

int出口= p.waitFor(); 返回1错误c0de

这是怎么了?

其他命令通过Java在Linux中工作正常吗?

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

[...] .directory("/bin/bash");

这是一个可执行文件,不是有效目录。

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

  相关解决方案