我正在尝试使用 java 代码运行以下命令,Process process =Runtime.getRuntime().exec(command)
但出现错误。
命令:repo forall -c 'pwd;git status'
错误:'pwd;git: -c: line 0: unexpected EOF while looking for matching
''` 我可以从 linux 终端运行此命令,但是从 java 运行时,问题出在 pwd;git 之后的空格。谁能帮我?
这是一个非常经典的错误,坦率地说,我很惊讶您没有通过四处搜索找到答案。
AProcess
不是命令解释器。
但是,Runtime.exec()
如果你只传递一个参数,它仍然会尝试作为一个参数,在这里你最终会像这样分裂:
repo
forall
-c
'pwd;git
status'
这显然不是你想要的。
使用ProcessBuilder
. 我不会为你做这一切,但这里是如何开始:
final Process p = new ProcessBuilder()
.command("repo", "forall", "-c", "pwd; git status")
// etc etc
.start();