繁体   English   中英

从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运行时,问题出在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();

链接到javadoc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM