許多小伙伴在剛學(xué)習(xí) Java 的時(shí)候,常常會(huì)聽到 JVM,JRE 和 JDK 這三個(gè)詞。特別是 JRE 和 JDK,在安裝 Java 環(huán)境的時(shí)候很多小伙伴們總是分不清楚。接下來(lái)的這篇文章就讓小編來(lái)告訴你 JDK 和 JRE 有什么區(qū)別吧。
首先回顧一下 Java 語(yǔ)言的編譯運(yùn)行過(guò)程。開發(fā)者編寫 Java 代碼保存成 java 文件,然后將 java 文件編譯為 class 文件(Java 字節(jié)碼文件),最后在 Java 虛擬機(jī)上運(yùn)行 Java 字節(jié)碼文件。
Java虛擬機(jī)(Java virtual Machine)
逆向地看 Java 的編譯運(yùn)行過(guò)程,最后一步是將代碼放進(jìn) Java 虛擬機(jī),那么什么是 Java 虛擬機(jī)呢?Java 虛擬機(jī)其實(shí)有點(diǎn)類似于 python 的解釋器,它逐句運(yùn)行 Java 字節(jié)碼。它是整個(gè) java 環(huán)境的內(nèi)核。
Java運(yùn)行時(shí)環(huán)境(Java Runtime Environment)
Java 運(yùn)行的時(shí)候有時(shí)候需要一些類庫(kù)的支持,這些類庫(kù)與 Java 虛擬機(jī)共同構(gòu)成了 Java 運(yùn)行時(shí)環(huán)境。Java 運(yùn)行時(shí)需要的類庫(kù)有 utils,lang 等庫(kù)。
Java 開發(fā)工具包(Java Development Kit)
在運(yùn)行之前需要先編譯,Java 開發(fā)工具包里面包含著 Java 開發(fā)時(shí)需要的工具(比如用來(lái)編譯的 ?javac
?,用來(lái)生成文檔的 ?javadoc
?,用來(lái)歸檔的 ?jar
? 等)和一個(gè)完整的 Java 運(yùn)行時(shí)環(huán)境。
由上可見,如果涉及到 Java 開發(fā),也就只能選擇 JDK 才能進(jìn)行開發(fā)了。如果是運(yùn)行別人提供的編譯過(guò)的 Java 字節(jié)碼文件,使用 JRE 就可以運(yùn)行,而 JVM 作為 JRE 的一部分很少單獨(dú)出鏡。
那么如何安裝JVM?
回到標(biāo)題的提問(wèn),如何安裝 Java 虛擬機(jī)?剛才說(shuō)了,Java 虛擬機(jī)作為 JRE 的一部分存在,所以安裝不同的 JVM 只要安裝相應(yīng)的不同的 JRE 就行了。JRE 安裝可以參考這篇文章:怎么下載 Java?如何安裝?,只需要在下載安裝的時(shí)候選擇 JRE 下載安裝即可。
小結(jié)
雖然在安裝 JDK 的時(shí)候會(huì)附帶 Java 運(yùn)行時(shí)環(huán)境,有些 Java 在安裝的時(shí)候還會(huì)有獨(dú)立的 JRE 安裝頁(yè)面(沒(méi)錯(cuò)我說(shuō)的就是你,oracle 的 java8)。但有些時(shí)候我們并不需要 Java 開發(fā)工具包(比如我們已經(jīng)有了一個(gè) Java 開發(fā)工具包了),這個(gè)時(shí)候獨(dú)立的 JRE 安裝顯得更加人性化了。
以上就是關(guān)于 Java 虛擬機(jī)怎么安裝的全部?jī)?nèi)容,更多精彩內(nèi)容關(guān)注W3C技術(shù)頭條即可獲取。