我想向linuxshell发送一个命令并用java获取它的响应,我该怎么做呢?
vd2z7a6w1#
看看processbuilder—这里的示例。
anhgbhbe2#
请参阅运行时类和exec()方法。请注意,您需要同时使用进程的stdout/sterr,否则会出现特殊的阻塞行为。有关更多信息,请参阅此答案。
rslzwgfq3#
你应该看看 Runtime 类及其 exec() 方法家族。最好显式地指定要通过shell运行命令,即创建一个命令行,如 "bash -c 'my command'" .
Runtime
exec()
"bash -c 'my command'"
cfh9epnr4#
执行这样的过程
Runtime.getRuntime().exec("ls");
…然后您可以获取进程输入流并用读取器读取它以获得响应
5gfr0r5j5#
几周前我写了一个类似的问题:用于执行/协调进程的Javashell?课程基本上让你做:
ShellExecutor excutor = new ShellExecutor("/bin/bash", "-s"); try { System.out.println(excutor.execute("ls / | sort -r")); } catch (IOException e) { e.printStackTrace(); }
5条答案
按热度按时间vd2z7a6w1#
看看processbuilder—这里的示例。
anhgbhbe2#
请参阅运行时类和exec()方法。
请注意,您需要同时使用进程的stdout/sterr,否则会出现特殊的阻塞行为。有关更多信息,请参阅此答案。
rslzwgfq3#
你应该看看
Runtime
类及其exec()
方法家族。最好显式地指定要通过shell运行命令,即创建一个命令行,如
"bash -c 'my command'"
.cfh9epnr4#
执行这样的过程
…然后您可以获取进程输入流并用读取器读取它以获得响应
5gfr0r5j5#
几周前我写了一个类似的问题:
用于执行/协调进程的Javashell?
课程基本上让你做: