Java——javac.exe、java.exe、javaw.exe的區別(簡述)

1. javac.exe

Java編譯器,將 .java 文件編譯成 .class 文件,即將源代碼文件編譯成字節碼文件,字節碼文件還不是機器能直接運行的文件。 javac.exe編譯後得到的 .class 文件是二進制指令,但不是機器指令,而是Java虛擬機可識別的指令。

2. java.exe

Java解釋器,啓動JVM(Java虛擬機),將 .class 文件一行一行地解釋成機器指令執行。(由Java虛擬機對字節碼進行解釋和執行) 

這就是爲什麼Java程序能跨平臺運行的原因。無論是在Windows、Linux、MAC等系統上,只要裝有相應版本的JVM,該JVM就能把 .class 文件解釋成機器指令執行。實現“一次編譯,隨處運行”。

3. javaw.exe

主要用於啓動基於GUI的應用程序。跟java命令相對的,運行java命令時,會出現並保持一個console窗口,程序中的信息可以通過System.out在console內輸出,而運行javaw,開始時會出現console,當主程序調用之後,console就會消失。 

編譯:.java(源代碼) ---> .class(字節碼)
解釋:.class(字節碼) ---> 加載並啓動JVM ---> .class(機器指令)
執行:通過JVM來完成運行輸出

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章