stderrだけをリダイレクトする方法は?

stderrだけをリダイレクトする方法は?

これを行うのに問題があります。コンパイルされた .java ファイルを実行し、stderr のみ error というファイルにリダイレクトする必要があります。したがって、.javaファイルの名前はjavaProgram.javaです。

私が試したことは次のとおりです。

java javaProgram 2> error

しかし、私は

cat error

特定の.javaファイルにエラーがないことを知っているにもかかわらず何かがあるようです。私は何が間違っていましたか?このエラーファイルにはエラーのみが表示され、他のものは表示されません。

答え1

最初の試みは正確でした。2>filenameこれがstderrをリダイレクトする方法です。考えられるシナリオは、プログラムがエラーではなく一部をstderrに記録しているか、Javaプログラムがstderrに出力する他のプログラムを実行していることです。

答え2

簡単な答えは不可能だということです。標準エラーは診断出力を作成するために使用され、診断/エラー出力が何であるかを定義することはアプリケーションによって異なります。これは以下に基づいています。POSIX規格

関連情報