天天看點

java JDK環境配置 win10 JDK10 以及JDK與JRE的差別3、關于JDK與JRE的認識

1、先去官網下載下傳JDK

https://www.oracle.com/technetwork/java/javase/downloads/jdk10-downloads-4416644.html

java JDK環境配置 win10 JDK10 以及JDK與JRE的差別3、關于JDK與JRE的認識

 2、下載下傳以後直接安裝就行了

jdk是java的開發包,其中包括jre;jre僅僅是java的運作時環境;而JDK包括了同版本的JRE,此外還包括有編譯器和其它工具

3、環境變量配置

    環境變量的配置,是為了讓電腦找到相應的運作檔案,打開DOS指令視窗,電腦是先在目前目錄找,找不到然後去系統配置的環境變量裡找

3.1先找到安裝jdk的目錄

java JDK環境配置 win10 JDK10 以及JDK與JRE的差別3、關于JDK與JRE的認識

3.2進入bin目錄複制這個路徑

java JDK環境配置 win10 JDK10 以及JDK與JRE的差別3、關于JDK與JRE的認識

       3.3在我的電腦中打開屬性

java JDK環境配置 win10 JDK10 以及JDK與JRE的差別3、關于JDK與JRE的認識
java JDK環境配置 win10 JDK10 以及JDK與JRE的差別3、關于JDK與JRE的認識
java JDK環境配置 win10 JDK10 以及JDK與JRE的差別3、關于JDK與JRE的認識

 剛剛複制的路徑粘貼在那裡

java JDK環境配置 win10 JDK10 以及JDK與JRE的差別3、關于JDK與JRE的認識

 完成之後一直點确定就行了

3、關于JDK與JRE的認識

關于jdk和jre

大家肯定在安裝JDK的時候會有選擇是否安裝單獨的jre,一般都會一起安裝,我也建議大家這樣做。因為這樣更能幫助大家弄清楚它們的差別:

Jre 是java runtime environment, 是java程式的運作環境。既然是運作,當然要包含jvm,也就是大家熟悉的虛拟機啦,還有所有java類庫的class檔案,都在lib目錄下打包成了jar。大家可以自己驗證。至于在windows上的虛拟機是哪個檔案呢?學過MFC的都知道什麼是dll檔案吧,那麼大家看看jre/bin/client裡面是不是有一個jvm.dll呢?那就是虛拟機。

Jdk 是java development kit,是java的開發工具包,裡面包含了各種類庫和工具。當然也包括了另外一個Jre. 那麼為什麼要包括另外一個Jre呢?而且jdk/jre/bin同時有client和server兩個檔案夾下都包含一個jvm.dll。說明是有兩個虛拟機的。這一點不知道大家是否注意到了呢?

相信大家都知道jdk的bin下有各種java程式需要用到的指令,與jre的bin目錄最明顯的差別就是jdk下才有javac,這一點很好了解,因為 jre隻是一個運作環境而已。與開發無關,正因為如此,具備開發功能的jdk自己的jre下才會同時有client性質的jvm和server性質的 jvm, 而僅僅作為運作環境的jre下隻需要client性質的jvm.dll就夠了。

記得在環境變量path中設定jdk/bin路徑麽?這應該是大家學習Java的第一步吧,老師會告訴大家不設定的話javac和java是用不了的。确實jdk/bin目錄下包含了所有的指令。可是有沒有人想過我們用的java指令并不是 jdk/bin目錄下的而是jre/bin目錄下的呢?不信可以做一個實驗,大家可以把jdk/bin目錄下的java.exe剪切到别的地方再運作 java程式,發現了什麼?一切OK!

那麼有人會問了?我明明沒有設定jre/bin目錄到環境變量中啊?

試想一下如果java為了提供給大多數人使用,他們是不需要jdk做開發的,隻需要jre能讓java程式跑起來就可以了,那麼每個客戶還需要手動去設定環境變量多麻煩啊?是以安裝jre的時候安裝程式自動幫你把jre的java.exe添加到了系統變量中,驗證的方法很簡單,大家看到了系統環境變量的 path最前面有“%SystemRoot%system32;%SystemRoot%;”這樣的配置,那麼再去Windows/system32下面去看看吧,發現了什麼?有一個java.exe。

如果強行能夠把jdk/bin挪到system32變量前面,當然也可以迫使使用jdk/jre裡面的java,不過除非有必要,我不建議大家這麼做。使用單獨的jre跑java程式也算是客戶環境下的一種測試。

———————————————————————————————————————————

通俗點來說: jdk是java的開發包,其中包括jre;jre僅僅是java的運作時環境;而JDK包括了同版本的JRE,此外還包括有編譯器和其它工具

    JDK是java開發工具包(java Development Kit)的縮寫。它是一種建構在java平台上釋出的應用程式、apple群組件的開發環境。JDK是一切java應用程式的基礎,所有的java應用程式是建構在這個之上的。它是一組API,也可以說是一些java Class。要成為一個Java程式員,JDK是必不可少的最基本的工具。

    JRE是Java運作環境(Java Runtime Enviroment)的縮寫。它基本上就和Java虛拟機是同一個概念。一般來說,在談論一個具體的産品的時候,可以說“JRE”,而說到理論中的一個模型的時候,我們常用的是“Java虛拟機”。要使用Java程式,JRE是必不可少的環境。

如果機子裡安裝了多個版本的jdk,如下:

BEA Weblogic Server 7.0 自帶一套 JDK1.3.1_02

下載下傳了一套最新的JDK1.4.1_02

JBuilder9自帶一套JKD1.4.1_02

Oracle8.1.7自帶一套JRE1.1.7

Ration Rose自帶一套JDK1.3

DreamWeaver自帶一套JDK1.3

      6套JRE,每套JRE都被各自安裝到不同的目錄,不會互相影響。當在控制台執行java.exe,作業系統尋找JRE的方式如下:

先找目前目錄下有沒有JRE

再找父目錄下有沒有JRE

接着在PATH路徑中找JRE(一般運作時從path中查找,按照path設定前後順序,以前面為準)

系統資料庫HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\ 檢視CurrentVersion的鍵值指向哪個JRE(一般XP下是這個:C:\Program Files\Java\jre6)

      最常用的是在PATH路徑中找JRE,一般情況下,自己的程式運作之前都會先在批處理檔案裡面臨時設定PATH,把自己用的JRE放到PATH路徑最前面,是以肯定會運作自己帶的JRE,不會造成版本混亂。

——————————————————————————————————————————————

JDK就是Java Development Kit.簡單的說JDK是面向開發人員使用的SDK,它提供了Java的開發環境和運作環境。SDK是Software Development Kit 一般指軟體開發包,可以包括函數庫、編譯程式等。

JRE是Java Runtime Enviroment是指Java的運作環境,是面向Java程式的使用者,而不是開發者。

如果安裝了JDK,會發同你的電腦有兩套JRE,一套位于 \jre 另外一套位于 C:\Program Files\Java\jre1.5.0_15 目錄下,後面這套比前面那套少了Server端的Java虛拟機,不過直接将前面那套的Server端Java虛拟機複制過來就行了。而且在安裝JDK可以選擇是否安裝這個位于 C:\Program Files\Java 目錄下的JRE。如果你隻安裝JRE,而不是JDK,那麼隻會在 C:\Program Files\Java 目錄下安裝唯一的一套JRE。

JRE的地位就象一台PC機一樣,我們寫好的Win32應用程式需要作業系統幫我們運作,同樣的,我們編寫的Java程式也必須要JRE才能運作。是以當你裝完JDK後,如果分别在硬碟上的兩個不同地方安裝了兩套JRE,那麼你可以想象你的電腦有兩台虛拟的Java PC機,都具有運作Java程式的功能。是以我們可以說,隻要你的電腦安裝了JRE,就可以正确運作Java應用程式。

1、為什麼Sun要讓JDK安裝兩套相同的JRE?

這是因為JDK裡面有很多用Java所編寫的開發工具(如javac.exe、jar.exe等),而且都放置在 \lib\tools.jar 裡。從下面例子可以看出,先将tools.jar改名為tools1.jar,然後運作javac.exe,顯示如下結果: Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac /Main 這個意思是說,你輸入javac.exe與輸入 java -cp c:\jdk\lib\tools.jar com.sun.tools.javac.Main 是一樣的,會得到相同的結果。從這裡我們可以證明javac.exe隻是一個包裝器(Wrapper),而制作的目的是為了讓開發者免于輸入太長的指命。而且可以發現\lib目錄下的程式都很小,不大于2 9K,從這裡我們可以得出一個結論。就是JDK裡的工具幾乎是用Java所編寫,是以也是Java應用程式,是以要使用JDK所附的工具來開發Java程式,也必須要自行附一套JRE才行,是以位于C:\Program Files\Java目錄下的那套JRE就是用來運作一般Java程式用的。

2、如果一台電腦安裝兩套以上的JRE,誰來決定呢?

這個重大任務就落在java.exe身上。Java.exe的工作就是找到合适的JRE來運作Java程式。 Java.exe依照底下的順序來查找JRE:自己的目錄下有沒有JRE;父目錄有沒有JRE;查詢系統資料庫: [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment] 是以java.exe的運作結果與你的電腦裡面哪個JRE被執行有很大的關系。

ADD:(小小結)

1.JVM -- java virtual machineJVM就是我們常說的java虛拟機,它是整個java實作跨平台的最核心的部分,所有的java程式會首先被編譯為.class的類檔案,這種類檔案可以在虛拟機上執行,也就是說class并不直接與機器的作業系統相對應,而是經過虛拟機間接與作業系統互動,由虛拟機将程式解釋給本地系統執行。2.JRE -- java runtime environmentJRE是指java運作環境。光有JVM還不能成class的執行,因為在解釋class的時候JVM需要調用解釋所需要的類庫lib。在JDK的安裝目錄裡你可以找到jre目錄,裡面有兩個檔案夾bin和lib,在這裡可以認為bin裡的就是jvm,lib中則是jvm工作所需要的類庫,而jvm和 lib和起來就稱為jre。是以,在你寫完java程式編譯成.class之後,你可以把這個.class檔案和jre一起打包發給朋友,這樣你的朋友就可以運作你寫程式了。(jre裡有運作.class的java.exe)3.JDK -- java development kitJDK是java開發工具包,基本上每個學java的人都會先在機器上裝一個JDK,那他都包含哪幾部分呢?讓我們看一下JDK的安裝目錄。在目錄下面有六個檔案夾、一個src類庫源碼壓縮包、和其他幾個聲明檔案。其中,真正在運作java時起作用的是以下四個檔案夾:bin、include、lib、 jre。現在我們可以看出這樣一個關系,JDK包含JRE,而JRE包含JVM。bin:最主要的是編譯器(javac.exe)include:java和JVM互動用的頭檔案lib:類庫jre:java運作環境(注意:這裡的bin、lib檔案夾和jre裡的bin、lib是不同的)總的來說JDK是用于java程式的開發,而jre則是隻能運作class而沒有編譯的功能。

eclipse、idea等其他IDE有自己的編譯器而不是用JDK bin目錄中自帶的,是以在安裝時你會發現他們隻要求你選中jre路徑就ok了。

jre與jdk轉自http://ihyperwin.iteye.com/blog/1513754