【发布时间】:2014-06-20 19:16:30
【问题描述】:
谁能告诉我如何从 shell 脚本获取状态报告到 java 代码。 用例:我从 java 代码运行一个 shell 脚本,如果我在 shell 脚本中遇到任何错误(在运行时),那么我需要从 shell 脚本向我的 java 代码发送一些消息。
那么我该如何实现呢。
【问题讨论】:
谁能告诉我如何从 shell 脚本获取状态报告到 java 代码。 用例:我从 java 代码运行一个 shell 脚本,如果我在 shell 脚本中遇到任何错误(在运行时),那么我需要从 shell 脚本向我的 java 代码发送一些消息。
那么我该如何实现呢。
【问题讨论】:
我确信有更好的方法,但一种简单的方法是让 shell 脚本通过管道将错误输出到一个文件,然后由 Java 应用程序读取。
【讨论】:
我假设您正在使用 ProcessBuilder 启动您的 shell 脚本。
构建流程后,您可以使用getInputStream(),它将为您提供Shell 脚本的输出流,然后只需将流复制到您想去的地方。
还有一个redirectOutput,但我使用它的经验有限。我假设它做了我上面描述的事情。
【讨论】:
你可以这样使用:
Process proc = Runtime.getRuntime().exec("ls -la")
// To get the error code (0=success)
int outCode = proc.exitValue()
如果您需要从脚本向执行它的应用程序发送内容,您可以在脚本中写入stdErr 并在您的java 程序中使用proc.getErrorStream。
【讨论】: