相同點:二者都是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文件)