11

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

javac file.java > log.txt

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

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

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

?

4

2 に答える 2

14
javac file.java 2> log.txt

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

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

于 2008-11-25T15:41:53.193 に答える
7

やってみました

javac -Xstdout log.txt file.java

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

于 2008-11-25T15:42:17.500 に答える