无法将“java”命令的输出重定向到文本文件

问题描述 投票:0回答:2

我在我的cmd提示符中尝试以下内容:

java的> TEMP.TXT

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

但如果我做以下事情:

dir> temp.txt

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

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

java redirect output
2个回答
4
投票

>用于将standard output(stdout)发送到给定位置。但用java命令打印的输出正在输入standard error(stderr)。

要重定向stderr,可以使用以下语法。这将standard outputs重定向到stdout.txtstandard errorsstderr.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
投票

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

java 2>temp.txt

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

关于http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html的更多细节

© www.soinside.com 2019 - 2024. All rights reserved.