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