1

次の問題でアドバイスをください。

UNIXサーバーがあります。UNIXサーバーで実行できる3つの個別のコマンドがあります。

 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 - シェル スクリプト。

3 つのコマンドを 1 つの Java クラスに含め、各コマンドの出力を個別のログ ファイルに書き込みたいと考えています。しかし、私はそれを実装する方法がわかりません。

また、Eclipseでチェックする方法を教えてください。

ご意見をお聞かせください。

よろしく!

4

2 に答える 2

1

他の回答に基づいて、シェルの実装は次のようになります。

#!/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標準エラーを任意に組み合わせることができます。

最後に、これら 3 つのコマンドを同時に発生させたい場合は、最後にベア&を置くことができます。

于 2012-09-18T06:32:20.377 に答える
0

Process と Runtime.exec の api を見てください。Process では、getInputStream() と getErrorStream() を使用してプロセスの stdout と stderr を取得し、リダイレクトを行うことができます。

しかし、そのような目的で Java プログラムを作成することは、私には意味がありません。シェルスクリプトを書くのはずっと簡単です。

于 2012-09-18T06:11:41.553 に答える