System.out 如何在 Eclipse 中将输出定向到控制台?

How does System.out direct output to console in eclipse?

在 eclipse 中查看某人的 maven Java 项目时,我注意到其中一个已保存的 运行 配置具有以下对 运行 的 maven 命令:

test -Dtest=fooTest -Dcom.awesomesite=System.out

当我检查 fooTest.java 文件时,我注意到以下语句:

public final static String BAR = "com.awesomesite";
....
this.whereToWrite = System.getProperty(BAR);

显然,实例变量"whereToWrite" 表示输出数据应该去哪里。由于我是 Java 的初学者,我只想了解 System.out 如何直接在控制台上打印输出。

System.out 连接到 environment/user 指定的显示器。默认值恰好是控制台。

当您启动 运行 配置时,Eclipse 使用 Runtime.getRuntime().exec(...) 启动一个新进程 运行 它。此 returns 代表新进程的 Process 对象。

Process 有一个 getInputStream() 方法,它 returns 一个 InputStream 连接到进程的标准输出(这是 System.out 通常写入的地方) . Eclipse 从此输入流中读取并在控制台上输出它接收到的内容。

Eclipse 还使用 getErrorStream().

从进程错误流中读取