JRE與JDK的區別與聯絡
前言
我們在剛接觸Java的時候,第一步就是安裝Java環境,就會看到JDK、JRE目錄。初學者對JDK、JRE都很陌生,不知道它們之間真正的作用和含義,那麼瞭解JDK、JRE分別是什麼及它們之間的關係,有助於我們更加快速、深刻的理解Java語言的特性。
1、JDK簡介
JDK的全稱:Java Development Kit ,是Java的標準開發工具包(普通使用者只需要安裝 JRE來執行 Java 程式。而程式開發者必須安裝JDK來編譯、除錯程式)。它提供了編譯、執行Java程式所需的各種工具和資源,包括Java編譯器、Java執行環境JRE,以及常用的Java基礎類庫等,是整個JAVA的核心。
JDK一般有三種版本:
SE(J2SE),standard edition,標準版,是我們通常用的一個版本 EE(J2EE)
EE(J2EE),enterpsise edtion,企業版,使用這種JDK開發J2EE應用程式
ME(J2ME),micro edtion,主要用於移動裝置、嵌入式裝置上的java應用程式 (相對來說現在使用的很少了,已經被Java的android體系取代)
1.1、jdk8安裝目錄介紹
2、JRE簡介
JRE的全稱:Java runtime environment ,是執行基於Java語言編寫的程式所不可缺少的執行環境,用於解釋執行Java的位元組碼檔案。
也是透過它,Java的開發者才得以將自己開發的程式釋出到使用者手中,讓使用者使用。JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,這些是執行Java程式的必要元件。與大家熟知的JDK不同,JRE是Java執行環境,並不是一個開發環境,所以沒有包含任何開發工具(如編譯器和偵錯程式),只是針對於使用Java程式的使用者。
2.1、JRE安裝目錄
3、Java裡JDK,JVM 和 JRE關係圖
由下圖中可以看出以下幾點:
JDK=JRE+多種Java開發工具
JRE=JVM+各種類庫
這三者的關係是一層層的巢狀關係。JDK>JRE>JVM
4、總結JDK、JRE的區別和聯絡
JDK的作用域大於JRE。
4.1、區別
JRE可以執行Java程式,但不能用於使用者開發、除錯Java程式。
4.2、聯絡
JDK裡包含JRE,都可用於執行程式,使用者不管是安裝JDK還是JRE都可執行Java程式。
從JDK11開始,安裝JDK預設是沒有JRE的,二者是在一起的。如果需要JRE這個單獨目錄,可以在JDK目錄下面去開啟命令視窗,然後執行如下命令(win10執行這個生成JRE需要目錄許可權,執行完之後就會生成JRE):
bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70030295/viewspace-2991760/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- cookie與session的區別與聯絡CookieSession
- Session與Cookie的區別與聯絡SessionCookie
- Kafka與ActiveMQ的區別與聯絡詳解KafkaMQ
- 詳解Kafka與ActiveMQ的區別與聯絡!KafkaMQ
- B/S與C/S的聯絡與區別
- JRE 和 JDK 的區別詳解JDK
- jQuery與JavaScript與ajax三者的區別與聯絡jQueryJavaScript
- 感知器、logistic與svm 區別與聯絡
- ipv4與ipv6的聯絡與區別
- javaSE中的==和equals的聯絡與區別Java
- 簡述Spring容器與SpringMVC的容器的聯絡與區別SpringMVC
- 程式和執行緒的區別與聯絡執行緒
- HDFS 塊和 Input Splits 的區別與聯絡
- 陣列地址與指標之間的區別與聯絡陣列指標
- KPI vs OKR:區別與聯絡的終極指南KPIOKR
- Vue中watch、computed與methods的聯絡和區別Vue
- 單機、分散式、叢集的區別與聯絡分散式
- 一文搞懂灰度釋出與 AB Test 的聯絡與區別
- 淺析HTML、CSS、JavaScript之間的聯絡與區別!HTMLCSSJavaScript
- Python中__new__和__init__的區別與聯絡Python
- 叢集、負載均衡、分散式的區別與聯絡負載分散式
- 先驗概率與後驗概率、貝葉斯區別與聯絡
- 大資料分析與機器學習之間的區別與聯絡大資料機器學習
- annotation之context:annotation-config與 context:component-scan的區別與聯絡Context
- Unicode,UTF-8和UTF-16的區別與聯絡Unicode
- ARM晶片、核心、架構、指令集的聯絡與區別晶片架構
- 資料倉儲、資料湖與湖倉一體的區別與聯絡
- `std::packaged_task`、`std::thread` 和 `std::async` 的區別與聯絡Packagethread
- 可觀測性與傳統監控的區別和聯絡
- 【Python入門必看】Python中Cookie和Session的區別與聯絡!PythonCookieSession
- 跟你深入剖析可迭代物件和迭代器的區別與聯絡物件
- 一篇讓你明白程式與執行緒之間的區別與聯絡執行緒
- 產品經理和專案經理區別與聯絡
- Linux中程式和執行緒的區別與聯絡,建議收藏!Linux執行緒
- 【科普】等級保護與分級保護的區別和聯絡!
- GoF設計模式中裝飾器、代理與介面卡的區別與聯絡 - MarioGo設計模式
- SCADA和PLC的區別聯絡
- Jtti:伺服器與資料庫有何區別和聯絡?Jtti伺服器資料庫