从Java应用程序和shell命令收集输出

从Java应用程序和shell命令收集输出,java,shell,Java,Shell,我正在编写一个shell脚本,它应该执行以下操作。 -运行产生输出的Java应用程序 -运行生成输出的shell命令 -收集两个输出并通过电子邮件发送出去 我可以控制上面所有步骤的源代码 是否有从不同来源收集产出的最佳实践?我应该将所有内容重定向到单个临时文件吗?我应该将不同的输出写入不同的文件,然后连接它们吗?每种方法的优缺点是什么?如果您不担心只使用Java,您可以使用运行时类使用Java(通过exec)命令执行shell命令,这将返回一个Process对象,在该对象上有getInputSt

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

我可以控制上面所有步骤的源代码


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

如果您不担心只使用Java,您可以使用
运行时
类使用Java(通过
exec
)命令执行shell命令,这将返回一个
Process
对象,在该对象上有
getInputStream
getOutputStream
,这样您就可以在一个位置内处理Java程序和shell命令的输出,并做任何您想做的事情(将其保存在内存中,并通过使用另一个
exec
)将输出流重定向到用于发送邮件的输入流,直接发送它)或保存它或其他任何东西。

我倾向于使用第二个包装器脚本

  • 调用java程序
  • 调用shell脚本
  • 将输出捕获到单个文件
  • 重新格式化该输出
  • 实际上适合邮寄出去
  • 邮递员来了吗

假设您使用的是unix shell,从命令行发送/格式化和shell脚本调用要简单得多。

您是从Java或命令行执行该脚本吗?这是个好主意。缺点是我的Java程序会意识到运行它的环境,并且移植性较差。我想知道是否有其他替代方法谢谢,谢谢。