use*_*592 12 java linux process
我现在在linux机器上.我有这将运行一些Linux命令,例如Java程序ps,top,list或free -m.
在Java中运行命令的方法如下:
Process p = Runtime.getRuntime().exec("free -m");
Run Code Online (Sandbox Code Playgroud)
我如何通过Java程序收集输出?我需要处理输出中的数据.
Joa*_*uer 14
使用Process.getInputStream()得到一个InputStream代表新创建的进程的标准输出.
请注意,从Java启动/运行外部进程可能非常棘手并且存在很多陷阱.
在这篇优秀的文章中描述了它们,它也描述了它们的方法.
要收集输出,你可以做类似的事情
Process p = Runtime.getRuntime().exec("my terminal command");
p.waitFor();
BufferedReader buf = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line = "";
String output = "";
while ((line = buf.readLine()) != null) {
output += line + "\n";
}
System.out.println(output);
Run Code Online (Sandbox Code Playgroud)
这将运行您的脚本,然后将脚本的输出收集到变量中.Joachim Sauer的答案中的链接还有其他例子.
| 归档时间: |
|
| 查看次数: |
18081 次 |
| 最近记录: |