我正在编写一个应该执行以下操作的shell脚本。
- 运行,其产生输出
的Java应用程序 - 运行产生输出 外壳命令 - 收集两个输出和发送出去在电子邮件从Java应用程序和shell命令收集输出
我的上述所有步骤的源代码的控制。
是否有收集不同来源输出的最佳做法?我应该将所有内容重定向到一个临时文件吗?我应该写不同的输出到不同的文件,然后连接它们吗?每种方法的优缺点是什么?
我正在编写一个应该执行以下操作的shell脚本。
- 运行,其产生输出
的Java应用程序 - 运行产生输出 外壳命令 - 收集两个输出和发送出去在电子邮件从Java应用程序和shell命令收集输出
我的上述所有步骤的源代码的控制。
是否有收集不同来源输出的最佳做法?我应该将所有内容重定向到一个临时文件吗?我应该写不同的输出到不同的文件,然后连接它们吗?每种方法的优缺点是什么?
如果你不担心使用纯Java您可以使用Runtime
类执行shell命令withing的Java(通过exec
)命令,这将返回你,你要么getInputStream
和getOutputStream
所以你Process
对象然后可以在一个地方处理Java程序和shell命令的输出,并执行任何您想要的操作(将其保存在内存中,并通过将输出流重定向到您用来发送邮件的输入流来直接发送它) ,另一个exec
)或保存它或任何。
这是个好主意。缺点是我的Java程序会意识到运行它的环境,并且便携性较差。我想知道是否有其他选择。谢谢。 – Russell 2011-03-18 18:28:09
我赞成使用第二包装脚本其中
假设您使用的是unix shell,邮件/格式化和shell脚本调用在命令行上要简单得多。
您是否正在从Java或命令行执行该脚本? – 2011-03-18 18:21:41
从命令行/ shell。 – Russell 2011-03-18 18:26:34