質問

Javaコンパイラの出力をファイルにリダイレクトしようとしています。 私はそれがあるはずだと思った:

javac file.java > log.txt

または何か。代わりに、ターミナルにすべての出力が表示され、log.txtには何も表示されません!

また、エラーもログに記録したい場合は、

javac file.java 2>&1 > log.txt

役に立ちましたか?

解決

javac file.java 2> log.txt

理由は、1つではなく 2つの出力ファイル記述子があるためです。通常のものはstdoutで、>でリダイレクトできます。結果の出力に使用することになっています。 2つ目のstderrは、警告、エラー、現在のステータスなど、人間が読める形式の出力を対象としています。これは2>でリダイレクトされます。

2>& 1を使用した2行目は、stderrをstdoutにリダイレクトし、最後にstdoutをlog.txtにリダイレクトします。

他のヒント

試しましたか

javac -Xstdout log.txt file.java

これにより、stderrではなくログファイルにコンパイラエラーが送信されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top