相同点:二者都是Java的虚拟机,用来执行Java程序

区别:javaw.exe运行程序时不会输出控制台信息,如果是双击打开jar文件的话(假设已经设置好了打开方式),那么根本就不会出现控制台窗口,主要用来运行带窗体的应用程序,其中的“w”就是window的意思,所以用它来运行控制台程序时虽不会报错,但不会输出任何结果。而java.exe无论运行控制台程序,还是运行窗体程序都没有任何问题。

情景模拟一:

编写一个最简单的控制台程序:

public static void main(String[] args)
{
    System.out.println("Hello World!");
}

运行:

情景模拟二:

如果是运行带GUI的程序:

1、如果用cmd的方式打开jar文件,有System.out.println的代码,java.exe会正常输出,而javaw.exe就不会输出,但控制台窗口都不会消失

2、如果是“右键”-->“打开方式”的方式运行jar文件的话,那么用java.exe打开文件还会保留一个控制台窗口,javaw.exe则不会出现,所以运行窗体程序一般都用javaw.exe。

附:

java.exe或者javaw.exe使用示例:

 java [-options] class [args...]

(用来执行一个已经编译好的字节码文件)
or  java [-options] -jar jarfile [args...]
(用来执行一个打包好的jar文件)