命令中的“2”是啥,同时将 System.out , System.err Java 消息重定向到文件 [重复]

Posted

技术标签:

【中文标题】命令中的“2”是啥,同时将 System.out , System.err Java 消息重定向到文件 [重复]【英文标题】:What is "2" in command, while redirecting both System.out , System.err Java messages to file [duplicate]命令中的“2”是什么,同时将 System.out , System.err Java 消息重定向到文件 [重复] 【发布时间】:2017-08-28 01:57:48 【问题描述】:

我只是想,我们可以将 System.outSystem.err 消息重定向到一个文件,我无法理解这个在运行以下文件时重定向的命令:java StandarProgram> output.log 2>error.log

什么是 2?如果不使用 2,错误消息会显示在控制台上并且不会重定向到文件?我根本无法得到这个。

public class StandardProgram

    public static void main(String[] args)

       System.out.println("Hello");
       System.err.println("World");

    

【问题讨论】:

【参考方案1】:

System.out 是根据 documentation 标准输出流 - 它是 1

System.err 是根据 documentation 标准错误流 - 它是 2

【讨论】:

这些是什么,正好是 1 和 2?它们有助于表示内容吗? 这些是 linux 系统的文件描述符 1 表示标准输出文件描述符 2 表示标准错误文件描述符 我用的是windows,和windows一样吗?和其他操作系统 是的,这是您在 windows cmd 中的代码 sn-p:***.com/questions/1420965/…【参考方案2】:

2 是标准错误文件描述符。

文件描述符 1 是标准输出 (stdout)。 文件描述符 2 是标准错误 (stderr)。

2>error.log 

用于将标准错误日志重定向到名为error.log的文件

【讨论】:

以上是关于命令中的“2”是啥,同时将 System.out , System.err Java 消息重定向到文件 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

java中,system.out中的 out是啥意思?

java中System.out.println中的out是啥,是一个类???

java中,system.out中的out是啥意思?

java中的system.out是啥意思

java的System. out. println()是啥意思?out是System类中的吗?

java中的System.out.println();的快捷键是啥?