我尝试使用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个错误代码
现在根据此链接: 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出口= p.waitFor();返回1个错误c0de
这是怎么了?
其他命令是否可以通过Java在Linux中正常工作?
答案 0 :(得分:1)
您正在将/bin/bash
指定为进程的工作目录:
[...] .directory("/bin/bash");
这是一个可执行文件,不是有效目录。
您可以完全关闭它,因为您已经指定了目录git
应该使用其-C
选项进行操作。