捕获javaw的输出

在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文件中。

 那么同样,对于错误输出,则可以使用相同方法:

public class mytest{
	public static void main(String[] args){
		Integer in=null;
		in.byteValue();
	}
}
捕获上述异常信息可以使用命令:

javaw mytest 2>err.txt

windows中的重定向命令可以参考这篇文章: http://hi.baidu.com/youziwenhan/item/88f115183806b8727a5f25cb

你可能感兴趣的:(javaw)