[英]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运行时,问题出在pwd; git之后。 谁能帮我?
这是一个非常经典的错误,坦率地说,您没有四处搜寻找不到答案,这让我感到惊讶。
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();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.