Sun公司提供了一套Java開發(fā)環(huán)境,簡稱JDK(Java Development Kit) 它是整個Java的核心,其中包括Java編譯器、Java運行工具、Java文檔生成工具、Java打包工具等。
為了滿足用戶日新月異的需求,JDK的版本在不斷地升級。在1996年1月,Sun公司發(fā)布了Java的第一個開發(fā)工具包JDK 1. 0,隨后相繼推出了JDK 1. 1、JDK 1. 2、JDK 1. 3、 JDK 1. 4、JDK 5(1. 5)、JDK 6(1. 6)、JDK 7(1. 7)、JDK 8(1. 8)、JDK 9(1. 9)和JDK 10。由于JDK 9是2017年9月發(fā)布的版本,JDK 10是2018年3月發(fā)布的版本,這兩個版本目前并不穩(wěn)定,且市場使用率低,所以針對目前穩(wěn)定的JDK 8(也稱之為Java 8或JDK 1. 8)進行講解。
Sun公司除了提供JDK,還提供了一種JRE(Java Runtime Environment)工具,它是 Java運行環(huán)境,是提供給普通用戶使用的。由于普通用戶只需要運行事先編譯好的Java程序,不需要自己動手編寫,因此JRE工具中只包含Java運行工具,不包含Java編譯工具。值得一提的是,為了方便使用,sun公司在其JDK工具中自帶了一個JRE工具,也就是說開發(fā)環(huán)境中包含運行環(huán)境。這樣一來,開發(fā)人員只需要在計算機上安裝JDK即可,而不需要專門安裝JRE工具。
首先我們需要下載 java 開發(fā)工具包 JDK,下載地址:
https://www.oracle.com/java/technologies/downloads/
在下載頁面中根據(jù)自己的系統(tǒng)選擇對應(yīng)的版本,本文以 Window 64位系統(tǒng)為例:
由于有的讀者說Oracle需要賬號才能下載,不想那么麻煩再去注冊一個,那么你就通過下載地址
鏈接:https://pan.baidu.com/s/1Qc_XkkrAX0XBKvd1dCxv9A
提取碼:m4fw
??
下載后 JDK 的安裝根據(jù)提示進行,還有安裝 JDK 的時候也會安裝 JRE,一并安裝就可以了。安裝JDK,安裝過程中可以自定義安裝目錄等信息。
說明:(jdk 需要配置三個環(huán)境變量; 1.5之后可以不再設(shè)置classpath,但建議保留classpath設(shè)置)
詳細步驟:(以win10為例)
1.鼠標(biāo)右鍵 “此電腦” 選擇屬性,之后會出現(xiàn)一個彈窗,點擊 “高級系統(tǒng)設(shè)置”
2.點擊后右下角有環(huán)境變量:
3.點擊 “環(huán)境變量” 然后就會看到這樣的畫面:
4.關(guān)鍵是下面的內(nèi)容,用戶變量可以不用管:
至此你已經(jīng)完成了所有的準(zhǔn)備步驟,接下來就是環(huán)境配置了:
1.點擊“新建”會出現(xiàn)一個彈窗:
變量名:JAVA_HOME
變量值:C:\Program Files\Java\jdk1.8.0_162(JDK的安裝路徑,這里以你自己的安裝路徑為準(zhǔn))
?
輸入完成之后點確認,第一項配置就完成了,接下來進行第二步
2.新建CLASSPATH 變量,變量值為:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意前面是有一個點的),配置好之后如下圖,這里是可以復(fù)制粘貼的。
?
然后點確定保存變量,進入第三步
3.配置path,找到path,雙擊或者點編輯
?
然后可以看到path里面已經(jīng)有很多內(nèi)容了,我們在最后面新建一個:
?
輸入 %JAVA_HOME%\bin
?
快捷鍵“ win + R ” ,打開運行窗口,輸入cmd,點擊確定打開命令行窗口,
?
輸入 java ,回車執(zhí)行
?
在輸入 javac ,回車執(zhí)行
?
再輸入 java -version ,回車執(zhí)行,(注意,java -version 中間有空格,我看到太多粗心的少打空格而失敗了,切記、切記、切記。)
?至此,恭喜你環(huán)境變量就配置完畢了!
對于很多初學(xué)者來說,由于沒有完全弄明白JDK、JRE與 JVM之間的關(guān)系和區(qū)別,因此特別容易將三者之間的關(guān)系混淆。為了使讀者能夠清晰地理解它們的關(guān)系,下面通過圖來識別JDK、JRE與JVM 之間的關(guān)系
?
從圖可以看出,JDK中包含了開發(fā)工具和JRE,而JRE中又包含了Java基礎(chǔ)類庫和JVM。其中JVM是運行Java程序的核心虛擬機,而運行Java程序不僅需要核心虛擬機,還需要類加載器、字節(jié)碼校驗器以及Java的基礎(chǔ)類庫等。如果只是運行Java程序,可以只安裝JRE,而無須安裝JDK。如果要開發(fā)Java程序,則必須安裝JDK。
1.JDK、JRE與 JVM之間的關(guān)系和區(qū)別
答案見下期尾部!
上期答案:
1.java SE,java EE,java ME。
2.java的應(yīng)用領(lǐng)域有:
3.Java語言有具有以下特性:
Java 語言具有簡單,面向?qū)ο螅植际剑研裕踩裕w系結(jié)構(gòu)中立性,可移植性,解釋性,高性能,多線程以及動態(tài)性。
對java新手來說,選擇jdk的版本也是個頭暈的事情,今天小拿就給大家講講。內(nèi)容包括
1.jdk從1.5到1.11,選哪個最好
2.jdk和jre的區(qū)別
一、jdk版本選擇
jdk是java開發(fā)工具包,除了運行和編譯相關(guān)的工具外,最重要的是封裝了很多方法(function/method/api)。比如寫一個輸出“Hello world”的程序,直接調(diào)用System.out.println方法就好。
但是安裝jdk的時候,有的人推薦1.6(也有叫6.0的),也有說用1.7和1.8的。竟然這么混亂,不如先官網(wǎng)看看是什么情況。
java下載官網(wǎng)直達:https://www.oracle.com/technetwork/java/javase/downloads/index.html
神馬!真是不看不知道,一看嚇一跳,jdk原來在今年的9月26日已經(jīng)發(fā)布了了11.0(也就是1.11),從jdk1.5到1.11,到底選哪個版本?
問題1:JDK為什么頻繁升級,從1.7到1.8、1.9、1.0、1.11?
這個問題新手可以了解下,java和C++都是高級語言,但是兩者之間最大的區(qū)別就是C++底層直接調(diào)用操作系統(tǒng)運行硬件;而java是在操作系統(tǒng)之上加了一層JVM(java虛擬機),也就是運行上硬件之上的一個層級,所以一般來說C++性能更好。
早期的大型客戶端游戲、網(wǎng)絡(luò)和大數(shù)據(jù)算法、和硬件驅(qū)動都是用C++(或者C)語言來開發(fā)的。但是人無完人,語言也是這樣,要不然就不會有像java、python、go等五花八門的語言。與操作系統(tǒng)的強鎖定使C++在不同操作系統(tǒng)或者硬件平臺運行時,都要對程序進行改進和調(diào)整。
而java因為底層有一套虛擬機的存在,號稱各平臺運行無障礙。現(xiàn)在智能電器、家居基本上跑的都是基于java語言開發(fā)的程序。
但是java說我也是運用這么廣泛的語言,怎么能老戴著性能不如C++的帽子呢?所以隨著技術(shù)的提高和數(shù)據(jù)結(jié)構(gòu)算法的應(yīng)用,通過不斷的小版本(如1.8.1,1.8.2)和大版本(1.7、1.8等)的發(fā)布,jvm的性能也一直在升級,普通應(yīng)用場景下,已經(jīng)和C++性能相關(guān)不大。
另外,語法一直比較死板的java語言,也在吸收其它語言的精華,比如1.8引入了Lambda表達式,1.9引入var變量等。(雖然,java程序員大都不買賬,一直用著原來死板的語法~~)
問題二:到底取選哪個
先給答案,選1.8或者1.9,1.8優(yōu)先。
話要從Sun公司(也就是太陽)被Oracle收購說起,java原來是個開源項目,社區(qū)來維護。被收購后就帶有商業(yè)和屬性,Oracle公司也慢慢開始向java開刀和收費了,雖然現(xiàn)在jdk se 標(biāo)準(zhǔn)版還不收費,但是高級版已經(jīng)向使用的企業(yè)要錢了。
有這個打算后的java語言走的路子就快了很多,比如10.0和11.0的發(fā)布就很快,一些新增的功能還需要市場來反饋是不是合理的,而且java開發(fā)依賴于很多框架(如spring),如果這些框架還沒有完全支持新版本,可能就運行不起來。所以建議新版本(10.0和11.0),除非只想從語言層面去體驗新功能,還是不要在實際業(yè)務(wù)開發(fā)中用。
1.5和1.6就太老了,連1.8,Oracle都發(fā)出2019年1月停止更新的通知了,我們就更不要用這些老古董了。
1.7、1.8、1.9都是成熟版本,原則上都可以選用。公司的商業(yè)項目jdk一般不輕易升級,1.9用的就比較少了,加上上面的配套框架升級速度的考慮,1.9版本第二推薦位。1.8和1.7的應(yīng)用都比較廣泛了,那自然選更新更高級的版本,所以,最推薦用1.8版本。
二、jdk和jre的區(qū)別
有同學(xué)在配置系統(tǒng)時,經(jīng)常遇到j(luò)dk和jre的問題,但是也搞不清兩者的區(qū)別。這里作為常識了解下,早期不知道也沒什么問題。
其實從就兩個詞的字面就可以區(qū)分開,jdk(java development kit)是java的開發(fā)工具包,jre (java runtime environment) 是java程序的運行環(huán)境。
本地開發(fā)的時候也可以運行,但是作為網(wǎng)站或者項目運行時,代碼都打個war包或者jar包了,跟開發(fā)相關(guān)的工具和包就沒有用了。
也就是說jre是jdk的一個子集。
下圖是官方1.8的文檔說明:https://docs.oracle.com/javase/8/docs/
運行時使用jre而不使用jdk,一方面是為了減少硬盤空間的使用,另一方面也有一定的安全考慮,防止jdk里的一些執(zhí)行命令被惡意篡改。當(dāng)然,現(xiàn)在大部分公司運行時已經(jīng)不那么區(qū)分jdk和jre了,直接在服務(wù)器上跑JDK。