命令中的“2”是什么,同时将 System.out 、 System.err Java 消息重定向到文件

What is "2" in command, while redirecting both System.out , System.err Java messages to file

我只是想,我们可以将 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");

    }
}

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

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

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

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

2>error.log 

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

的文件