无法重定向" java"的输出命令到文本文件

时间:2017-03-08 19:17:08

标签: java redirect output

我在cmd提示符下尝试以下操作:

Java和GT; TEMP.TXT

temp.txt正在创建,其中没有内容。 "的java"命令输出显示在控制台本身,而不会重定向到temp.txt

但如果我做以下事情:

DIR> TEMP.TXT

dir命令的输出被重定向到临时文件。

为什么" java"的输出?命令没有被重定向到文本文件??

2 个答案:

答案 0 :(得分:4)

>用于将standard output(标准输出)发送到指定位置。但是使用java命令打印的输出将出现在standard error(stderr)输出中。

要重定向stderr,您可以使用以下语法。这会将standard outputs重定向到stdout.txt,将standard errors重定向到stderr.txt

java > stdout.txt 2> stderr.txt

或者,您可以使用以下命令将standard outputstandard error发送到同一文件(不提及文件名两次)。

java > output.txt 2>&1

2>表示重定向stderr,&1表示重定向stdout的位置为output.txt。所以这个命令会将stdout重定向到output.txt,并将stderr重定向到重定向stdout的地方(这是output.txt iteself)。

答案 1 :(得分:1)

因为当您运行java而没有参数时,输出会重定向到stderr而不是stdout。所以你应该这样做:

java 2>temp.txt

2告诉命令将stderr重定向到文件temp.txt

有关http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html

的更多详情