【问题标题】:How do I execute Bash commands and collect the output from Java?如何执行 Bash 命令并从 Java 收集输出?
【发布时间】:2011-06-20 21:11:40
【问题描述】:

如何执行 Bash 命令并收集 Java 的输出?

大家好,基本上我正在编写一个基本的控制台应用程序,并希望能够从中运行命令,例如 sudo***、halt、ifconfig 等。

有什么见解吗?

【问题讨论】:

    标签: java bash process command


    【解决方案1】:

    未经测试的代码:

    Runtime run = Runtime.getRuntime();
    Process pr = run.exec(bashcommand);
    pr.waitFor();
    BufferedReader buf = new BufferedReader(new InputStreamReader(pr.getInputStream()));
    
    while ( ( String line ; line = buf.readLine() ) != null ) 
    {
      System.out.println(line);
    }
    

    【讨论】:

      【解决方案2】:

      您可以为此目的使用processBuilder API。见this example

      【讨论】:

      • 别忘了调用 processBuilder.redirectErrorStream(true)。或者启动另一个线程来耗尽 stderr。
      • 我在“示例”中没有看到任何提及 bash
      • 示例链接已损坏。
      • 您还有其他示例链接吗?还是镜子?
      猜你喜欢
      • 2018-01-16
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      • 2013-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      相关资源
      最近更新 更多