1、JDK、JRE、JVM三者間的聯繫與區別及環境變量的配置

在這裏插入圖片描述

一、JDK

  • JDK(Java SE DevelopmentKit),Java標準開發包,它提供了編譯、運行Java程序所需的各種工具和資源,包括Java編譯器、Java運行時環境,以及常用的Java類庫等。
  • 下圖是JDK的安裝目錄:
      在這裏插入圖片描述

二、JRE

  • JRE( Java Runtime Environment) 、Java運行環境,用於解釋執行Java的字節碼文件。普通用戶而只需要安裝JRE(Java Runtime Environment)來運行 Java 程序。而程序開發者必須安裝JDK來編譯、調試程序。
  • 下圖是JRE的安裝目錄:裏面有兩個文件夾bin和lib,在這裏可以認爲bin裏的就是jvm,lib中則是jvm工作所需要的類庫,而jvm和lib和起來就稱爲jre。
    在這裏插入圖片描述

三、JVM

  • JVM(Java VirtualMechinal),Java虛擬機,是JRE的一部分。它是整個java實現跨平臺的最核心的部分,負責解釋執行字節碼文件,是可運行java字節碼文件的虛擬計算機。所有平臺的上的JVM向編譯器提供相同的接口,而編譯器只需要面向虛擬機,生成虛擬機能識別的代碼,然後由虛擬機來解釋執行。
  • 當使用Java編譯器編譯Java程序時,生成的是與平臺無關的字節碼,這些字節碼只面向JVM。不同平臺的JVM都是不同的,但它們都提供了相同的接口。JVM是Java程序跨平臺的關鍵部分,只要爲不同平臺實現了相應的虛擬機,編譯後的Java字節碼就可以在該平臺上運行。

四、區別與聯繫

  • JDK 用於開發,JRE 用於運行java程序 ;如果只是運行Java程序,可以只安裝JRE,無需安裝JDK。
  • JDk包含JRE,JDK 和 JRE 中都包含 JVM。
  • JVM 是 java 編程語言的核心並且具有平臺獨立性。

五、環境變量

  • path(環境變量):

    • path 是 dos以前的內部命令,windows繼續沿用至今。用作運行某個命令的時候,本地查找不到某個命令或文件,會到這個聲明的目錄中去查找。
    • 環境變量可以簡單的理解爲路徑導向。例如:Windows裏面的臨時文件夾存放的路徑導向。當要訪問此類文件時可根據此環境變量找到它的存放目錄。像下面講的在我們輸入Java命令如javac等的時候不用敲入它的路徑,系統自動根據環境變量設置找到其實際地址。
  • java程序的執行過程?

    • Java程序的運行是先將xxx.java文件(使用 javac 編譯指令(jdk的bin目錄下))編譯成xxx.class文件(字節碼文件),再將字節碼文件(使用 java 執行指令(jre的bin目錄下))解釋成電腦所能認識的機器指令並運行的。
  • 爲什麼要配置環境變量?

    • 配置PATH環境變量(必需):
      • 前面講到了 Java 程序的運行首先需要使用 javac 編譯指令 編譯成字節碼文件, 繼而使用 java 執行指令解釋並運行字節碼文件,而 windows 運行 java 編譯命令 javac 或者執行指令 java的時候,本地查找不到某個命令或文件,就會到path中去查找。那這個 javac 我們知道是存在 JDK 目錄下面的 bin目錄中的,因爲我們不可能在每個 java 文件所在目錄放置 JDK ,故把 JDK 放置 path 環境變量中,這樣每個 java文件都可以通過 path 中設定的jdk目錄找到編譯命令進行編譯。
    • 配置CLASSPATH環境變量(必需):
      • 在java開發過程中我們會用到很多開發人員已經幫我們寫好的標準類庫,而我們要用這些類庫的話必須告訴計算機如何找到它們,CLASSPATH環境變量的作用就是指定類搜索路徑,JVM就是通過CLASSPTH來尋找類的,設置CLASSPATH環境變量即可使計算機找到它們。
    • 配置JAVA_HOME環境變量(不必需):
      • JDK 是我們進行 java 開發必不可少的,在開發過程中我們通常會使用一些java開發過程中用到的軟件(如eclipse、tomcat等)是通過JAVA_HOME來找到 JDK 的(環境變量JAVA_HOME的值就是 JDK安裝的路徑),所以我們不配置JAVA_HOME的話那我們使用eclipse時可能要受到影響。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章