圖1-9:Java的加載與執(zhí)行
● Java程序從開發(fā)到運行包括編譯和運行兩個階段,這兩個階段可以在不同的操作系統(tǒng)中完成,例如在windows環(huán)境下進行編譯,在Linux環(huán)境下運行,這是因為有JVM機制的存在,做到了一次編譯到處運行(跨平臺/可移植)。
● 編譯階段需要使用javac.exe(安裝JDK之后該命令就存在了)命令,運行階段需要使用java.exe(安裝JRE之后該命令就存在了)命令。
● 一個java源文件可能會編譯生成多個class文件。
● java源文件中的源代碼如果不符合java的語法機制則編譯時編譯器會提示錯誤信息,并且無法生成class文件。反之則生成class文件,而class文件才是最終要執(zhí)行的程序,此時將java源文件刪除是不會影響java程序運行的(當然,我們也不必刪除java源文件,因為在運行class文件之后,如果沒有達到預期的運行效果,這個時候還需要將java源代碼修改,重新編譯,以達到最終的運行效果)。
● 若生成的字節(jié)碼文件名為A.class,那么我們稱A為一個類的名字(這個先記住就行,后面的內(nèi)容會講)。
● 當編譯階段完成之后,我們可以使用JRE中的java.exe命令運行程序,例如執(zhí)行命令“java A”,該命令執(zhí)行后會啟動類加載器,類加載器去硬盤上搜索A.class文件,找到該字節(jié)碼文件之后,將其加載到JVM當中,JVM中的解釋器會將A.class字節(jié)碼文件解釋為操作系統(tǒng)可以執(zhí)行的二進制碼,然后操作系統(tǒng)通過執(zhí)行二進制碼和硬件平臺交互。
● 運行java程序的前提是當前操作系統(tǒng)上已經(jīng)安裝了對應版本的JVM(JVM不是單獨安裝的,安裝JRE即可,不同的操作系統(tǒng)需要安裝不同版本的JRE,不同版本的JRE對應不同版本的JVM)。