虽然看着日食别人的Maven的Java项目中,我注意到,保存的运行配置中的一种具有以下maven的命令来运行:System.out如何将输出直接输出到eclipse中的控制台?
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直接输出如何在控制台上打印。
在eclipse内部的某个地方,它必须将'System.out'设置为指向控制台视图。 System.out是一个可修改的静态字段 –
@LanceJava它实际上是“final”。在jvm开始后它会被反射设置,据我记忆 – SomeJavaGuy
反射不是必需的(我不认为你可以通过反射来设置最终场),还有一个[setOut(...)](https ://docs.oracle.com/javase/7/docs/api/java/lang/System.html#setOut%28java.io.PrintStream%29)方法。猜测最后一个字段是一个包装,代理是可变的 –