Java ProcessBuilder возвращает ошибку выхода 128 при выполнении git в linux (некоторые команды git работают нормально) - PullRequest
0 голосов
/ 13 февраля 2019

Простая команда git, которую я пытаюсь выполнить с помощью Java ProcessBuilder, работая с find, когда я запускаю ее в 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 код ошибки

теперь по этой ссылке: Запустите GitLog с 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?

1 Ответ

0 голосов
/ 14 февраля 2019

В качестве рабочего каталога процесса вы указываете /bin/bash:

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

Это исполняемый файл, а не допустимый каталог.

Вы можете полностью его исключить, так как выуже укажите каталог, в котором git должен работать с опцией -C.

...