Question

J'essaie de rediriger la sortie du compilateur Java vers un fichier. Je pensais que c'était supposé être:

javac file.java > log.txt

ou quelque chose. Au lieu de cela, je vois toutes les sorties sur le terminal et rien dans log.txt!

De même, si je souhaite également consigner les erreurs, est-ce que je le fais

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

?

Était-ce utile?

La solution

javac file.java 2> log.txt

La raison en est que vous avez deux descripteurs de fichier de sortie au lieu d'un. Le port habituel est stdout, que vous pouvez rediriger avec > et il est censé être utilisé pour la sortie résultante. Le second, stderr, est destiné aux sorties lisibles par l’homme telles que les avertissements, les erreurs, l’état actuel, etc., celui-ci est redirigé avec 2 >.

Votre deuxième ligne, avec 2 > & amp; 1, redirige stderr vers stdout et enfin stdout dans log.txt.

Autres conseils

Avez-vous essayé

javac -Xstdout log.txt file.java

Ceci enverra les erreurs du compilateur dans un fichier journal au lieu de stderr.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top