J'essaye de rediriger la sortie du compilateur java vers un fichier. Je pensais qu'il est censé être:essayant de capturer la sortie javac dans bash shell
javac file.java > log.txt
ou quelque chose. Au lieu de cela, je vois toute la sortie sur le terminal et rien dans le fichier log.txt!
Aussi, si je veux enregistrer les erreurs aussi, dois-je faire
javac file.java 2>&1 > log.txt
?
Je vois rediriger stderr me donne la sortie que je veux. Pourquoi tout est-il connecté dans stderr et rien dans stdout? Aussi, pourriez-vous me dire pourquoi javac file.java 2> & 1> log.txt ne fonctionne pas? – jcee14
Les redirections sont gérées de gauche à droite. Le 2> & 1 envoie stderr à l'endroit où stdout va actuellement - le terminal. Ensuite, le fichier> log.txt envoie stdout à log.txt, en laissant stderr en train d'écrire dans stdout d'origine. Si vous avez écrit> log.txt 2> & 1, toutes les sorties iront au fichier. –
Vous obtenez des points bonus si vous saviez que cela fonctionne aussi:> log.txt javac 2> & 1 file.java –