1

请在以下问题中提出建议。

有 UNIX 服务器。我有 3 个可以在 UNIX 服务器中执行的单独命令:

 1. java com.documentum.server.impl.utils.TestConnection SERVER_NAME PORT_NUMBER do_method
 2. dmqdocbroker -t SERVER_NAME -p PORT_NUMBER -c getserver
 3. dmqdocbroker -t SERVER_NAME -p PORT_NUMBER -c getservermap <REPOSITORY_NAME>

注意:dmqdocbroker - shell 脚本。

我想将 3 个命令包含到一个 java 类中,并将每个命令的输出写入单独的日志文件。但我不知道如何实现它。

另外,您能否建议如何在eclipse中检查它?

请指教。

带着敬意!

4

2 回答 2

1

根据其他答案,shell 实现如下所示:

#!/bin/sh
java com.documentum.server.impl.utils.TestConnection SERVER_NAME PORT_NUMBER do_method &> log_file_1
dmqdocbroker -t SERVER_NAME -p PORT_NUMBER -c getserver &> log_file_2
dmqdocbroker -t SERVER_NAME -p PORT_NUMBER -c getservermap <REPOSITORY_NAME> &> log_file_3

如果您很好奇,这command &> filename意味着您将标准输出和错误输出都放在同一个日志文件中。如果您希望它们转到不同的日志文件,您可以> fileA对标准输出和2> fileB标准错误进行任意组合。

最后,如果你想让这三个命令同时发生,你可以&在最后加上一个bare。

于 2012-09-18T06:32:20.377 回答
0

查看 Process 和 Runtime.exec 的 api。在 Process 中,您可以使用 getInputStream() 和 getErrorStream() 来获取进程的 stdout 和 stderr 并进行重定向。

但是,为此目的编写 java 程序对我来说没有意义。编写一个 shell 脚本会简单得多。

于 2012-09-18T06:11:41.553 回答