同一點:二者都是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檔)