java javaw 命令区别_java.exe和javaw.exe有什么区别

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

f1550580b429740921970318ebdbcac0.png

最好的解释:

http://blog.csdn.net/cuser_online/article/details/6219482

b92760b310f687df7c559b96687a6629.png

59f17901e2cbfc0e828120f52011ec67.png

------总结

1Eclipse使用的是javaw.exe,而不是java.exe

045434eb03db270366fb360b58c253bc.png

2为什么在Eclipse中启动tomcat,进程中就会多出一个javaw.exe?

7170662acfd933665a6c6a9e4db798d5.png

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:

cce9863f828d20e73012536f2502752c.png

而从Eclipse中启动tomcat,使用的是javaw.exe,即不需要在控制台输出,因为Eclipse有自己的控制台,不需要弹出windows的控制台进行输出。

c81effcce03174b8a6bd563eb75d6930.png

----------------------------使用一句话,概括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

8835d70bb9e3fac8c16c61112abfb735.png

f23d5e43bdef7a09af92266a98851fa1.png

---------------一言以蔽之:

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自己的控制台。

以下跟我有相同疑问:

ddd1b25aac57c7106c5a832ab95613ca.png

答案在这里:

Eclipse一定是使用是深度使用了了javaw.exe,然后将System.out.println("XXX");输出的东西拿到,然后写入Eclipse的某个临时文件中,然后Eclipse自己的控制台去读取这个临时文件,这样System.out.println("XXX");的内容不就打印到Eclipse自己的控制了。就是这样。

dfc08fd4470e44337d4afd9ecfe3c237.png

我亲测,使用javaw.exe不是不可以输出System.out.println("XXX");,而是没有在控制台输出而已,其实它是输出了的,输出方式有很多:如写入txt文件等。

java.exe和javaw.exe有什么区别相关教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值