java.exe和javaw.exe有什么区别
java.exe和javaw.exe有什么区别?
java.exe是运行class文件用的,即执行class文件。
而javaw.exe是干什么用的?参考我的:
http://blog.csdn.net/ideality_hunter/article/details/51376006
------javaw和java的区别,其他人的解释:
http://blog.csdn.net/u010890857/article/details/45753833
最好的解释:
http://blog.csdn.net/cuser_online/article/details/6219482
------总结
1Eclipse使用的是javaw.exe,而不是java.exe
2为什么在Eclipse中启动tomcat,进程中就会多出一个javaw.exe?
3java.exe运行的程序之后cmd控制台进入阻塞状态,正在运行的cmd控制台不能输入其他命令,而用javaw.exe运行java程序的话,控制台还可以输入其他命令。
所以,一般用javaw.exe运行具有图形界面即GUI的class文件,而java.exe运行需要在控制台输出东西的class文件。
5java.exe是需要控制台即cmd的,而javaw.exe是不需要控制台即cmd的。所以单纯启动tomcat是java.exe,而Eclipse中启动tomcat是使用的javew.exe。
单纯启动tomcat,使用的java.exe,因为程序员写的代码如果调用了system.out.println("XXX");,是需要控制台即cmd输出的。而javaw.exe是不会将system.out.println("XXX")输出的到控制台的,因为javaw.exe不调用控制台即cmd:
而从Eclipse中启动tomcat,使用的是javaw.exe,即不需要在控制台输出,因为Eclipse有自己的控制台,不需要弹出windows的控制台进行输出。
----------------------------使用一句话,概括java.exe和javaw.exe的区别:
两者其实没有区别,只有一点区别:
1双击java.exe会弹出一个控制台,而双击javaw.exe不会弹出任何东西。
这是因为java.exe会调用System.console();功能是获取到当前控制台,如果没有打开控制台(如在Eclipse中运行class,是使用的Eclipse的控制台,而不是再弹出一个系统的DOS控制台),是会报错的。但是在cmd中,使用java.exe运行命令,就不会报错。
如:
https://www.oschina.net/question/271613_50458
---------------一言以蔽之:
java.exe和javaw.exe没有区别,都是运行class文件用的,只有一点:
java.exe需要开启DOS控制台。
javaw.exe不需要开启DOS控制台。
------------终于明白了,原来是这样,如下,懂了下面的,就真正懂了javaw.exe是什么东西了。
-----------疑问,既然javaw.exe不能将System.out.println("XXX");输出到控制台,那么为什么Eclipse使用了javaw.exe却可以将System.out.println("XXX");输出到Eclipse自己的控制台。
以下跟我有相同疑问:
答案在这里:
Eclipse一定是使用是深度使用了了javaw.exe,然后将System.out.println("XXX");输出的东西拿到,然后写入Eclipse的某个临时文件中,然后Eclipse自己的控制台去读取这个临时文件,这样System.out.println("XXX");的内容不就打印到Eclipse自己的控制了。就是这样。
我亲测,使用javaw.exe不是不可以输出System.out.println("XXX");,而是没有在控制台输出而已,其实它是输出了的,输出方式有很多:如写入txt文件等。
java.exe和javaw.exe有什么区别相关教程