从Java app和shell命令收集输出

时间:2011-03-18 18:19:16

标签: java shell

我正在编写一个应该执行以下操作的shell脚本 - 运行生成输出的Java应用程序
- 运行产生输出的shell命令 - 收集两个输出并通过电子邮件发送出去

我控制了上述所有步骤的源代码。

是否有从不同来源收集输出的最佳做法?我应该将所有内容重定向到单个临时文件吗?我应该将不同的输出写入不同的文件然后连接它们吗?每种方法的优缺点是什么?

2 个答案:

答案 0 :(得分:0)

如果您不担心只使用Java,可以使用Runtime类使用java(通过exec)命令执行shell命令,这将返回Process您拥有getInputStreamgetOutputStream的对象,这样您就可以在一个地方处理Java程序和shell命令的输出并执行您想要的任何操作(将其保留在内存中)并通过将输出流重定向到用于发送邮件的输入流,使用另一个exec)或保存它或其他任何内容来直接发送它。

答案 1 :(得分:0)

我赞成使用第二个包装脚本

  • 调用java程序
  • 调用shell脚本
  • 将输出捕获到单个文件
  • 重新格式化输出
  • 适合邮寄实际
  • 发邮件

假设您使用的是unix shell,则命令行中的邮件/格式化和shell脚本调用要简单得多。