システムログ(ターミナル)のフル出力を得る

私は、あなたがMacintosh/Ubuntu/Windowsコマンドプロンプトのターミナルのようなコンソールコマンドを入力してログに出力するコンソールJavaアプリケーションを作っています。

私はシステム/コンソールコマンドを実行すると、そのコマンドからどのように結果/ログを取得するのだろうかと疑問に思っていましたか?

注:私はリテラルコード+説明をしてください。

1
System.out.println(results)の何が問題なのですか?
追加された 著者 mishadoff,
例えば、ユーティリティは現在の日付を出力します: public static void main(String [] args){System.out.println(new Date()); }
追加された 著者 mishadoff,
@Mishadoff例では?
追加された 著者 Gray Adams,
あなたは:標準出力のような意味ですか?
追加された 著者 Alexis Dufrenoy,
追加された 著者 sarnold,

1 答え

これを行うにはいくつかの方法がありますが、最も簡単な方法はこの例をご覧ください。

Process child = Runtime.getRuntime().exec(command);
InputStream in = child.getInputStream();

内部コマンドを2つに分けたい場合は、 Commons IO TeeOutputStream を参照してください。

上記の手法を組み合わせて、内部コマンドか外部コマンドかを問わず、すべての出力をコンソールと「シャドウ」ログファイルの両方に得ることができます。

0
追加された
それは動作しません。 「EventDispatchThread」を生成します。
追加された 著者 Gray Adams,
@GrayAdams私はあなたのコメントを理解していません。ごめんなさい。
追加された 著者 Dave Newton,