1. 程式人生 > 其它 >1_JDK、JRE 和 JVM

1_JDK、JRE 和 JVM

講述了JDK的解除安裝與安裝 ,還有 JDK、JRE 和 JVM 三者之間的關係。

JDK 和 JRE

1、JDK 的解除安裝與安裝

1.1 解除安裝 JDK

  1. 刪除 java 的安裝目錄
  2. 刪除 JAVA_HOME
  3. 刪除 path 下關於Java 的目錄
  4. cmd視窗測設 java-version

1.2 安裝 JDK

  1. 百度搜索 JDK8,找到下載地址
  2. 同意協議
  3. 下載電腦對應版本
  4. 雙擊安裝JDK
  5. 記住安裝路徑 C:\Program Files\Java\jdk1.8.0_162
  6. 配置環境變數(告訴系統我的程式在哪裡)
    1. 我的電腦 --> 右鍵 -->屬性
    2. 環境變數 -->JAVA_HOME
    3. 配置path變數 在系統變數裡面去找(% 表示引用,引用一個路徑,)
    4. 測試是否配置成功
      1. 開啟 cmd
      2. 輸入 java -version
      3. 顯示版本資訊即成功


新建JAVA_HOME

配置path變數(兩個)

測試

2、JDK 、JRE 和 JVM 之間的關係

  1. JDK 和 JRE 之間的關係?

    答:

    JDK (Java Development Kit ):Java 開發工具包,提供了 Java 的開發環境和執行環境。

    JRE (Java Runtime Environment ):Java 執行環境,為 Java 的執行提供了所需環境。

    JVM (Java Virtual Machine ) : Java 虛擬機器,它是整個java實現跨平臺的最核心的部分。

    關係:

    JDK 包含了 JRE , 同時包含了編譯 Java 原始碼的編譯器 Javac ,還包含了很多Java程式除錯和分析工具。

    簡單來說就是,如果你要執行編譯後的 java 程式也就是 .class 檔案,只需安裝 JRE 就可以了,如果你需要編寫或編譯 Java 程式,就需要安裝 JDK 了。

現在我們對三者有了一個大概的瞭解,那麼再深入的瞭解一下 !

  1. 就行這是我安裝的 JDK1.8,截圖如下,為什麼有兩個 JRE 資料夾? (直接看總結)


圖一

圖二

可以發現兩個 JRE 資料夾, 細看之下內容基本是一樣的,如果只是 java 程式的使用者,用圖一下的 JRE 就好了。

JDK 中的 JRE 目錄是自帶的,你如果安裝了JDK必然會有一個 JRE ,問題來了為什麼會有兩套 JRE 呢?

舉個例子(為啥有兩套 JRE):在任意資料夾下執行 cmd 鍵入 javac

報錯的原因就是輸入的javac的命令不是去JDK中bin目錄去找的javac.exe,而是去JDK中lib目錄中的tools.jar中com.sun.tools.javac.Main中執行,因此javac.exe只是一個包裝器(Wrapper),存在的目的是為了讓開發者免於輸入過長的指命。這個時候發現JDK裡的工具幾乎是用Java所編寫,同屬於Java應用程式,因此要使用JDK所附的工具來開發Java程式,所以自身需要附一套JRE才能執行上圖中與 jdk 同級目錄下的 jre 就是用來執行一般Java程式用的。

再總結一下:

​ JDK 裡面的工具也是用 JAVA 編寫的,它們本身執行的時候也需要一套 JRE,而C:/Program Files/Java/目錄下的 JRE 是用來執行我們自己編寫的 JAVA 程式。當然,兩套JRE中的任何一套都可以用來執行我們自己編寫的JAVA程式,但是 JDK 裡面的工具只能由 JDK 目錄下的JRE來執行。

  1. 說一下 JVM(問題?:為什麼Java程式可以實現一次編譯處處執行? 那就得說說什麼是jvm了)

    ​ 它是整個java實現跨平臺的最核心的部分,所有的java程式會首先被編譯為.class的類檔案,這種類檔案可以在虛擬機器上執行,class檔案並不直接與機器的作業系統相對應,而是經過虛擬機器間接與作業系統互動,由虛擬機器將程式解釋給本地系統執行。

    ​ JVM不能單獨搞定class的執行,解釋class的時候JVM需要呼叫解釋所需要的類庫lib。在JDK下面的的jre目錄裡面有兩個資料夾bin和lib,在這裡可以認為bin裡的就是jvm,lib中則是jvm工作所需要的類庫,而jvm和 lib和起來就稱為jre。JVM+Lib=JRE

  2. JDK下面的資料夾作用

    在 JDK 目錄下面有五個資料夾 ,一個 src 類庫原始碼壓縮包和幾個宣告檔案,其他五個資料夾分別是:bin、db、include、lib、 jre, ( db 這個檔案看業務需求)

    • bin:最主要的是編譯器 (javac.exe)
    • include:java 和 JVM 互動用的標頭檔案
    • lib:常用類庫
    • jre:java執行環境
    • db:jdk從1.6之後內建了Derby資料庫,它是是一個純用Java實現的記憶體資料庫,屬於Apache的一個開源專案。用Java實現的,所以可以在任何平臺上執行;另外一個特點是體積小,免安裝,只需要幾個小jar包就可以運行了。

總結:

​ 總的來說,JDK包含JRE,而JRE包含JVM,JDK是用於java程式的開發,而jre則是隻能執行class而沒有編譯的功能。

​ Eclipse、IntelliJ IDEA等其他IDE有自己的編譯器而不是用JDK bin目錄中自帶的。

本文來自部落格園,作者:走馬!,轉載請註明原文連結:https://www.cnblogs.com/zou-ma/p/j.html