Bash端末でJavaプログラムを実行していて、OS X 10.8
そのプログラムが生成する出力をリダイレクトしようとしています。
ただし、パイプを介して実行したりファイルにリダイレクトしたりすると、出力は空になりますが、端末には出力が表示されます。
この点を説明するには、次のようにします。
> java program.java
13/10/02 14:18:30 WARN some
13/10/02 14:18:30 INFO log
13/10/02 14:18:30 INFO messages
...
> java program.java > log
> cat log
>
stdout
別のストリームに書き込むようにJavaプログラムを設定しましたが、まだ端末から出力を生成することは可能ですか?そのようなことは可能ですか?
答え1
持つサム各プログラムの標準ファイルstdin
(標準入力)、stdout
(標準出力)、stderr
(標準エラー)を開きます。デフォルトでは、両方とも端末に作成されstdout
出力されます。stderr
stderr
ログやエラーメッセージが実際のプログラム出力と混在しないように、代わりにエラーとログメッセージを作成するのがstdout
一般的なルールです。次のstderr
リダイレクトを使用できます2>
。
command 2> log