linux shell和java

z4iuyo4d  于 2021-07-05  发布在  Java
关注(0)|答案(5)|浏览(316)

我想向linuxshell发送一个命令并用java获取它的响应,我该怎么做呢?

vd2z7a6w

vd2z7a6w1#

看看processbuilder—这里的示例。

anhgbhbe

anhgbhbe2#

请参阅运行时类和exec()方法。
请注意,您需要同时使用进程的stdout/sterr,否则会出现特殊的阻塞行为。有关更多信息,请参阅此答案。

rslzwgfq

rslzwgfq3#

你应该看看 Runtime 类及其 exec() 方法家族。
最好显式地指定要通过shell运行命令,即创建一个命令行,如 "bash -c 'my command'" .

cfh9epnr

cfh9epnr4#

执行这样的过程

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

…然后您可以获取进程输入流并用读取器读取它以获得响应

5gfr0r5j

5gfr0r5j5#

几周前我写了一个类似的问题:
用于执行/协调进程的Javashell?
课程基本上让你做:

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

相关问题