gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 10:02:54 25 4
gpt4 key购买 nike

我尝试使用 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 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 个错误代码

这里有什么问题吗?

其他命令通过 java 在 linux 中工作得很好吗?

最佳答案

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

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

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

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

关于Java ProcessBuilder 在 Linux 中执行 git 时返回退出错误 128(一些 git 命令工作正常),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54678568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com