一尘不染

Java 调用Runtime.exec时捕获标准输出

java

在客户端计算机上遇到网络问题时,我希望能够运行一些命令行并将其结果通过电子邮件发送给我自己。

我发现Runtime.exec将允许我执行任意命令,但是将结果收集到String中会更有趣。

我意识到我可以将输出重定向到文件,然后从文件中读取,但是我的幻想是告诉我,有一种更优雅的方法。

有什么建议吗?


阅读 878

收藏
2020-02-26

共1个答案

一尘不染

你需要在此过程中同时捕获标准输出和标准错误。然后,你可以将std写出到文件/邮件或类似文件中。

请参阅本文以获取更多信息,尤其要注意StreamGobbler在单独的线程中捕获stdout / err 的机制。这是防止阻塞的必要条件,如果操作不当,则会导致大量错误!

2020-02-26