什么是JDK?
好吧如果你不知道這個(gè)問題的話我實(shí)在是不知道你為什么要裝這個(gè)東西。
JDK(Java Development Kit)是Sun公司(后被Oracle收購)推出的面向?qū)ο蟪绦蛟O(shè)計(jì)語言的開發(fā)工具包,擁有這個(gè)工具包之后我們就可以使用Java語言進(jìn)行程序設(shè)計(jì)和開發(fā)。
而今天我們要在Linux環(huán)境 下對這個(gè)東西進(jìn)行部署以便能夠進(jìn)行開發(fā),并且是以壓縮包解壓的方式進(jìn)行安裝,之所以不用rpm方式安裝主要是為了能夠在所有Linux系統(tǒng)上都通用,rpm和deb最多只能在Red Hat和Debian旗下的Linux系統(tǒng)上分別安裝,而且還會(huì)有互相轉(zhuǎn)換的問題,但是用壓縮包就沒有這個(gè)問題了,盡管相對要繁瑣一些。
操作系統(tǒng):CentOS Linux Release 8.0.1905 (Core)
環(huán)境:Virtual Box 虛擬機(jī)
那我只想讓Java的程序能夠在我這上運(yùn)行呢??
如果你實(shí)在懶得找或者找不到JRE的安裝教程的話,那你權(quán)且也可以跟著這個(gè)流程一起走下來,保證你的Java程序確實(shí)能夠運(yùn)行,只是你的Linux操作系統(tǒng)上會(huì)多出來很多你實(shí)際上完全不需要的東西。
如果我想安裝其他的版本呢??
JDK 8及以下的版本可能與此有所區(qū)別,請參考其他專門安裝JDK 8的安裝過程。
JDK 10以上應(yīng)該可這個(gè)過程大體沒有太多區(qū)別,不過參考的時(shí)候請務(wù)必注意有些位置需要換成你當(dāng)前的版本代號(hào)。
你為什么要在Linux上安裝呢??你不是更喜歡在Windows平臺(tái)拿Eclipse做Java開發(fā)嗎??
你的問題還真是多啊,你說得對,但是在特別需求的情形下,我不得不采取一些“我不喜歡”的行為。
而這個(gè)就是一個(gè),因?yàn)槲倚枰贚inux平臺(tái)下部署Hadoop,而新安裝的CentOS里面根本沒有Java的環(huán)境:
[user@localhost /]$ java -version
bash: java: 未找到命令...
而Java SE是Hadoop的一個(gè)先決條件
而且如果部署好了的話我也可以用Linux做Java開發(fā)了豈不美哉??
但是看起來網(wǎng)上的同類的教程非常多啊
我什么時(shí)候說過這是一篇教程了??這只是作為我的一次過程記錄而已,如果可能的話我也希望它能夠成為其他人的參考,而且我也參考了很多人的安裝過程,最終我成功了。
站在了無數(shù)巨人的肩膀上。
好了不多說了,那就開始吧。
嗯,確實(shí)如此。首先需要安裝一個(gè)Linux的系統(tǒng),沒必要是CentOS,也可以是Ubuntu、Fedora 、Debian什么的隨你喜歡,用不用GUI也無所謂,因?yàn)榧词刮野惭b了一個(gè)帶有GUI的CentOS,我的安裝過程實(shí)際上是用bash指令完成的。
在實(shí)際進(jìn)行安裝之前,我必須提前說明:
和Windows不一樣,Linux系統(tǒng)是對大小寫敏感的,也就是說/Somewhere/a.zip和/somewhere/A.zip并不在同一目錄下,也不是同一個(gè)文件名,這點(diǎn)請務(wù)必注意!??!
下文中出現(xiàn)的所有shell指令的真正內(nèi)容都是從$之后開始的。
至于你是實(shí)體機(jī)還是虛擬機(jī)這個(gè)區(qū)別應(yīng)該不大,你可以實(shí)際拿個(gè)U盤去裝也可以下個(gè)VMWare或者Virtual Box什么的。這里我不做說明。
下載JDK壓縮包
總之,CentOS 8我安裝好了,當(dāng)然你可能用的是Ubuntu 16.04什么的這個(gè)就隨便了,接下來要從網(wǎng)絡(luò)上下載一個(gè)JDK13的壓縮包(jdk-13_linux-x64_bin.tar.gz)
這里假設(shè)你無論是GUI下載還是wget下載方式,你都已經(jīng)把壓縮包下載至/usr/download目錄下了
如果你的Linux系統(tǒng)有GUI并且系統(tǒng)預(yù)裝了Firefox,那么你可以像在Windows里一樣拿Firefox火速?zèng)_到JDK的下載地址,像這樣:
如果沒有GUI的話,你可以用wget指令:
[user@localhost /usr/lib/jvm/jdk-13]$ su root #
整個(gè)過程需要提升為root權(quán)限進(jìn)行,因?yàn)槠胀ㄓ脩舨豢梢栽趗sr、etc文件夾及它們的子文件夾下進(jìn)行修改
[root@localhost /]$ mkdir /usr/download # 如果你沒有這個(gè)目錄的話就先鍵入這個(gè)指令,否則直接看下一句
[root@localhost /]$ cd /usr/download
[root@localhost /usr/download]$ wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/13+33/5b8a42f3905b406298b72d750b6919f6/jdk-13_linux-x64_bin.tar.gz
注意:因?yàn)镺racle官網(wǎng)要求必須登錄Oracle賬號(hào)才能下載JDK等內(nèi)容,所以直接鍵入
wget https://download.oracle.com/otn-pub/java/jdk/13+33/5b8a42f3905b406298b72d750b6919f6/jdk-13_linux-x64_bin.tar.gz
下載出來的jdk-13_linux-x64_bin.tar.gz
只有5KB(實(shí)際上應(yīng)當(dāng)是180MB),那個(gè)東西根本就不是壓縮包而是一個(gè)請求頁面而已。所以如果通過命令行的方式下載只能通過上面的方式進(jìn)行下載
下載好了之后查看一下jdk-13_linux-x64_bin.tar.gz的屬性:
[root@localhost /]$ ls -al jdk-13_linux-x64_bin.tar.gz
-rw-rw-r--. 1 user user 188711447 9月 19 11:13 jdk-13_linux-x64_bin.tar.gz
在一些Linux操作系統(tǒng)下,此時(shí)文件名的位置被顯示為紅色,意思是說:
這是一個(gè)壓縮文件
所以不必?fù)?dān)心,這不是錯(cuò)誤,你可以繼續(xù)進(jìn)行。
如果你發(fā)現(xiàn)188711447(約180MB)被5307(約5KB)(也就是說文件大小嚴(yán)重不一致)替代了意味著你的下載鏈接是錯(cuò)誤的,請?jiān)敿?xì)閱讀上文“注意”里面的內(nèi)容然后用rm jdk-13_linux-x64_bin.tar.gz刪掉這個(gè)文件并重新下載,如果大小不一致但是差不多大有可能是你下載了其他的版本,也有可能是壓縮包損壞了,如果是后者請重新下載。
解壓JDK安裝包中的文件
接下來使用tar指令解壓壓縮包,解壓至/usr/lib/jvm目錄下:
[root@localhost /usr/download]$ mkdir /usr/lib/jvm
[root@localhost /usr/download]$ tar -xf jdk-13_linux-x64_bin.tar.gz -C /usr/lib/jvm #-- 這一步請耐心等待一會(huì),需要一段時(shí)間
[root@localhost /usr/download]$ cd /usr/lib/jvm
[root@localhost /usr/lib/jvm]$ ls
jdk-13
你會(huì)看到在/usr/lib/jvm下存在一個(gè)叫做jdk-13的文件夾,我們進(jìn)去看看
[root@localhost /usr/lib/jvm]$ cd jdk-13
[root@localhost /usr/lib/jvm/jdk-13]$ ls
bin conf include jmods legal lib man release
至此,JDK的所有組件都已經(jīng)備齊了,接下來要進(jìn)行配置。
添加環(huán)境變量
注意:這里要求使用VIM
如果你會(huì)使用VIM
啊,那沒問題,繼續(xù)吧
如果你不會(huì)使用VIM
如果你使用的Linux系統(tǒng)帶有GUI界面
你可以使用預(yù)裝的文本編輯器進(jìn)行編輯,就像在Windows里面使用記事本那樣。
否則
如果你想了解VIM
找其他人的教程看看VIM的基本操作方法
否則,如果你有值得信賴且能力夠強(qiáng)的朋友的話
找他幫你弄弄
否則
emmm……我在此由衷地替您感到悲哀
在Windows下使用安裝程序安裝的時(shí)候一般來說環(huán)境變量是被自動(dòng)配置好的,但是很可惜我們現(xiàn)在是手動(dòng)安裝,JDK的工作依賴于大量的環(huán)境變量中的路徑。
好像Oracle系的軟件都是這副死亞子,比如Oracle DB……
JDK需要這樣幾個(gè)環(huán)境變量:
JAVA_HOME :Java的主目錄,你把壓縮包包解壓之后得到的jdk-13文件夾所在的位置(并且包含jdk-13自身)
JRE_HOME:JRE的主目錄,JRE是運(yùn)行Java應(yīng)用程序的最基本軟件環(huán)境,所以如果你只是希望Java的程序能夠運(yùn)行的的話你完全不需要安裝JDK,盡管JDK里面帶有JRE。
CLASSPATH:Java提供的標(biāo)準(zhǔn)或公共類庫的位置
PATH:這是系統(tǒng)的環(huán)境變量,這個(gè)東西只是告知系統(tǒng)你的Java開發(fā)環(huán)境被安裝在了什么位置,這個(gè)東西使你在任意目錄下都可以直接執(zhí)行Java的開發(fā)工具比如javac等,直接鍵入javac就可以執(zhí)行而不需要再重新鍵入/usr/lib/jvm/jdk-13/bin/javac。
Linux系統(tǒng)下的環(huán)境變量被存儲(chǔ)于若干個(gè)文件里,其作用范圍有所不同,有的只作用于當(dāng)前用戶,而有的作用于全體用戶。而我們這里的環(huán)境直接對全體用戶生效就可以了(因?yàn)槌藃oot就我一個(gè)用戶user),所以,這里我們會(huì)對/etc/profile進(jìn)行修改。
不過我們現(xiàn)在知道JAVA_HOME=/usr/lib/jvm/jdk-13,這個(gè)目錄意思是說包含了所有和Java運(yùn)行環(huán)境相關(guān)的東西,我們看看里面都有什么
[user@localhost /usr/lib/jvm/jdk-13]$ ls
bin conf include jmods legal lib man release
其中bin是Java所有開發(fā)工具(通常是可執(zhí)行的應(yīng)用程序)所在的目錄,而lib里面則是Java提供的公共類庫,當(dāng)然這個(gè)也就是我們在找的CLASSPATH了。
那么,JRE_HOME怎么辦呢??
早在JDK 8的時(shí)候,安裝好的JAVA_HOME下能夠找到一個(gè)叫做jre的文件夾,但是到JDK 13的時(shí)候剛才也看了,哪里有jre呢??
其實(shí)不用考慮這個(gè)問題,因?yàn)樾掳姹镜腏DK不僅附帶JRE,而且把JRE組件直接毀進(jìn)JDK了,所以JRE_HOME可以直接給成JAVA_HOME就可以了。
因此我們用VIM打開/etc/profile(因?yàn)槭牵┻M(jìn)行編輯:
[root@localhost /usr/lib/jvm/jdk-13]$ vim /etc/profile
在這個(gè)文件開頭加入如下內(nèi)容:
export JAVA_HOME=/usr/lib/jvm/jdk-13
export JRE_HOME=/${JAVA_HOME}
export CLASSPATH=.:${JAVA_HOME}/libss:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
然后:wq保存退出,不過因?yàn)橹皇菍懺诹宋募?,這些環(huán)境變量并沒有被實(shí)際的構(gòu)建到內(nèi)核中,因此需要手動(dòng)執(zhí)行一下這個(gè)文件。
[root@localhost /usr/lib/jvm/jdk-13]$ source /etc/profile
[root@localhost /usr/lib/jvm/jdk-13]$ exit #退出root權(quán)限
至此,安裝過程全部結(jié)束,JDK可以正常工作了,我們可以用下面這個(gè)指令檢驗(yàn)一下:
[user@localhost /usr/lib/jvm/jdk-13]$ java -version
現(xiàn)在我們可以在Linux系統(tǒng)上使用JDK13進(jìn)行開發(fā)了。
既然裝好了,不妨我們試一下吧!
說得對??!我們已經(jīng)摩拳擦掌了,那就編寫一個(gè)Java程序測試一下吧!
隨便在某個(gè)位置建個(gè)文件夾編寫一個(gè)Hello World試試看吧:
[user@localhost /usr/lib/jvm/jdk-13]$ mkdir ~/jsrc
[user@localhost /usr/lib/jvm/jdk-13]$ cd ~/jsrc
[user@localhost ~/jsrc]$ vim Hello.java
/// Hello.java
public class Hello
{
public static void main(String args[])
{
System.out.println("Hello");
}
}
[user@localhost ~/jsrc]$ javac Hello.java
[user@localhost ~/jsrc]$ ls
Hello.class Hello.java
[user@localhost ~/jsrc]$ java Hello
Hello
總結(jié)
以上所述是小編給大家介紹的在Linux環(huán)境下采用壓縮包方式安裝JDK 13的方法,希望對大家有所幫助!