官术网_书友最值得收藏!

1.3.3 JVM、JRE與JDK的區別

既然JVM貴為Java程序的運行環境,為什么之前安裝的是JDK而非JVM呢?這是因為JVM僅僅定義了一套運行規范,并未指明只有Java程序才能運行于JVM。相反,如果其他編程語言遵循JVM的運行規范,那么同樣能夠運行于JVM。除了Java語言外,還有Kotlin、Scala、Clojure、Groovy等編程語言支持JVM,它們的代碼也能由JVM編譯運行。

不過由于JVM只定義了一套規范,本身沒有包含更具體的實現類庫,因此真正的Java運行環境是更上一層的JRE(Java Runtime Environment,即Java運行環境)。JRE是運行Java程序所必需的環境集合,它包含JVM的標準實現和Java的核心類庫。

雖然有了JRE就能實時地運行Java程序,但是對開發人員來說遠遠不夠,因為開發者還需要編譯、排錯、打包、數據分析、性能優化等功能支持,所以最終提供給開發者下載的是JDK(Java Development Kit,Java開發工具包)。JDK不但包含JRE的所有內容,而且附加了一些實用小工具,例如javac.exe、java.exe、jar.exe等。

綜上所述,JVM、JRE與JDK三者之間的包含關系為JDK>JRE>JVM。

如果讀者安裝的JDK是Java 8,在JDK的安裝目錄下就會看到有一個名叫jre的子目錄,這是JRE程序包所在,同時說明JDK已經將JRE包括在內。如果讀者安裝的JDK是Java 11,在JDK的安裝目錄下就看不到jre子目錄,這是因為以前的JDK設立jre目錄是為了方便獨立更新JRE,而從Java 11開始不再單設jre了。如果開發者確實需要單獨的JRE,那么可使用命令行進入JDK的安裝目錄,然后執行以下命令:

bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre

命令執行完畢,即可在JDK安裝目錄下看到多了一個jre子目錄。

主站蜘蛛池模板: 镇平县| 丹寨县| 常熟市| 纳雍县| 莆田市| 乌鲁木齐市| 中山市| 双鸭山市| 格尔木市| 舟山市| 廉江市| 页游| 启东市| 铜梁县| 历史| 天峻县| 晋州市| 永顺县| 桂林市| 安平县| 黎城县| 奉化市| 云霄县| 温州市| 南木林县| 望谟县| 增城市| 弥渡县| 蒲城县| 平邑县| 罗源县| 凌海市| 团风县| 太仆寺旗| 温宿县| 曲阜市| 平顺县| 大荔县| 平乡县| 云安县| 手机|