繁体   English   中英

Linux Shell和Java

[英]linux shell and java

我想向Linux Shell发送命令并使用Java获得它的响应。我该怎么做?

这里查看ProcessBuilder- 示例

您应该查看Runtime类及其exec()方法族。

最好最好明确指定要通过外壳运行命令,即创建类似"bash -c 'my command'" 的命令行

执行这样的过程

Runtime.getRuntime().exec("ls");

...然后您可以获取流程输入流,并使用Reader对其进行读取以获取响应

请参见Runtime类和exec()方法。

请注意,您需要同时消耗进程的标准输出/ sterr,otheriwse你会得到特殊的阻塞行为。 有关更多信息,请参见此答案

几周前,我在一个非常类似的问题中写了一堂小课来做到这一点:

用于执行/协调进程的Java Shell?

该类基本上让您执行以下操作:

    ShellExecutor excutor = new ShellExecutor("/bin/bash", "-s");
    try {
            System.out.println(excutor.execute("ls / | sort -r"));
    } catch (IOException e) {
            e.printStackTrace();
    }

暂无
暂无

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

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