我在cmd提示符下尝试以下操作:
Java和GT; TEMP.TXT
temp.txt正在创建,其中没有内容。 "的java"命令输出显示在控制台本身,而不会重定向到temp.txt
但如果我做以下事情:
DIR> TEMP.TXT
dir命令的输出被重定向到临时文件。
为什么" java"的输出?命令没有被重定向到文本文件??
答案 0 :(得分:4)
>
用于将standard output
(标准输出)发送到指定位置。但是使用java
命令打印的输出将出现在standard error
(stderr)输出中。
要重定向stderr,您可以使用以下语法。这会将standard outputs
重定向到stdout.txt
,将standard errors
重定向到stderr.txt
java > stdout.txt 2> stderr.txt
或者,您可以使用以下命令将standard output
和standard 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