在java中存在java、javaw以及javaws这三个launcher,java用来启动控制台程序,javaw用来启动GUI程序,javaws用来启动Web程序,
具体介绍见:http://blog.csdn.net/topwqp/article/details/8595936。
在eclipse中,默认使用的是javaw来启动java程序,那么就会出现一个问题。既然javaw是用来启动GUI程序的,那么我们在程序中使用System.out、System.err以及System.in这些标准输入、输出是如何捕获并显示在eclipse的Console窗口中的呢。
public class mytest{
public static void main(String[] args){
System.out.println("Hello,Foo");
}
}
上述代码,如果使用java mytest运行,就可以在Console中显示“Hello,Foo”结果。但是如果用javaw mytest运行,则无任何结果。但是如果使用如Eclipse这些IDE运行则会显示相应的结果。那么这些IDE是如何捕获这些信息的?其实这里使用到的是重定向技术。在windows中,我们可以使用
javaw mytest >output.txt
命令来将标准输出重定位到output.txt文件中。
那么同样