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

问题描述 投票:0回答:1

简单的git命令我尝试用java ProcessBuilder执行,当我在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错误代码

现在根据这个链接:Start GitLog with Java Process Builder面临同样的问题

我试着这样做:

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工作得很好?

java linux git processbuilder
1个回答
1
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.