有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

爪哇>;临时雇员文本

临时工。正在创建txt,但其中没有任何内容。“java”命令输出显示在控制台本身中,无需重定向到temp。文本

但如果我做了以下事情:

dir>;临时雇员文本

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

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


共 (2) 个答案

  1. # 1 楼答案

    >用于将standard output(stdout)发送到给定位置。但是用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重定向到输出。将stdout重定向到的位置(即output.txt iteself)

    您还可以通过发送stderr来忽略/dev/null(仅限linux)

    java > out.txt 2> /dev/null
    
  2. # 2 楼答案

    因为在没有参数的情况下运行java时,输出会重定向到stderr,而不是stdout。所以你应该:

    java 2>temp.txt
    

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

    有关http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html的更多详细信息