相同点:两者都是Java的虚拟机,用来执行Java程序java
区别:javaw.exe运行程序时不会输出控制台信息,若是是双击打开jar文件的话(假设已经设置好了打开方式),那么根本就不会出现控制台窗口,主要用来运行带窗体的应用程序,其中的“w”就是window的意思,因此用它来运行控制台程序时虽不会报错,但不会输出任何结果。而java.exe不管运行控制台程序,仍是运行窗体程序都没有任何问题。ide
情景模拟一:spa
编写一个最简单的控制台程序:cmd
public static void main(String[] args) { System.out.println("Hello World!"); }
运行:虚拟机
情景模拟二:it
若是是运行带GUI的程序:io
一、若是用cmd的方式打开jar文件,有System.out.println的代码,java.exe会正常输出,而javaw.exe就不会输出,但控制台窗口都不会消失。编译
二、若是是“右键”-->“打开方式”的方式运行jar文件的话,那么用java.exe打开文件还会保留一个控制台窗口,javaw.exe则不会出现,因此运行窗体程序通常都用javaw.exe。class
附:打包
java.exe或者javaw.exe使用示例:
java [-options] class [args...]
(用来执行一个已经编译好的字节码文件)
or java [-options] -jar jarfile [args...]
(用来执行一个打包好的jar文件)