Ich versuche, die Java-Compiler-Ausgabe in eine Datei umleiten. Ich dachte, es soll sein:versuchen, javac Ausgabe in Bash-Shell zu erfassen
javac file.java > log.txt
oder so etwas. Stattdessen sehe ich alle Ausgaben auf dem Terminal und nichts in log.txt!
Auch, wenn ich Fehler will auch einzuloggen, mache ich
javac file.java 2>&1 > log.txt
?
Ich sehe Umleitung stderr gibt mir die Ausgabe, die ich will. Warum ist alles in stderr eingeloggt und nichts in stdout? Könnten Sie mir auch sagen, warum javac file.java 2> & 1> log.txt nicht funktioniert? – jcee14
Die Umleitungen werden von links nach rechts behandelt. Die 2> & 1 sendet stderr an den Ort, an dem sich derzeit stdout befindet - das Terminal. Dann sendet die> log.txt stdout an log.txt, wobei stderr an das ursprüngliche stdout schreibt. Wenn Sie> log.txt 2> & 1 geschrieben haben, würde die gesamte Ausgabe in die Datei gehen. –
Sie erhalten Bonuspunkte, wenn Sie wussten, dass dies auch funktioniert:> log.txt javac 2> & 1 file.java –