1. 程式人生 > >在Linux環境下采用壓縮包方式安裝JDK 13

在Linux環境下采用壓縮包方式安裝JDK 13

本文地址:https://www.cnblogs.com/oberon-zjt0806/p/11663731.html
可以,轉載,出處,格式,懂??

什麼是JDK??

好吧如果你不知道這個問題的話我實在是不知道你為什麼要裝這個東西。

JDK(Java Development Kit)是Sun公司(後被Oracle收購)推出的面向物件程式設計語言的開發工具包,擁有這個工具包之後我們就可以使用Java語言進行程式設計和開發。

而今天我們要在Linux環境 下對這個東西進行部署以便能夠進行開發,並且是以壓縮包解壓的方式進行安裝,之所以不用rpm方式安裝主要是為了能夠在所有Linux系統上都通用,rpm和deb最多隻能在Red Hat和Debian旗下的Linux系統上分別安裝,而且還會有互相轉換的問題,但是用壓縮包就沒有這個問題了,儘管相對要繁瑣一些。

作業系統:CentOS Linux Release 8.0.1905 (Core)
環境:Virtual Box 虛擬機器

那我只想讓Java的程式能夠在我這上執行呢??

如果你實在懶得找或者找不到JRE的安裝教程的話,那你權且也可以跟著這個流程一起走下來,保證你的Java程式確實能夠執行,只是你的Linux作業系統上會多出來很多你實際上完全不需要的東西。

如果我想安裝其他的版本呢??

JDK 8及以下的版本可能與此有所區別,請參考其他專門安裝JDK 8的安裝過程。
JDK 10以上應該可這個過程大體沒有太多區別,不過參考的時候請務必注意有些位置需要換成你當前的版本代號。

你為什麼要在Linux上安裝呢??你不是更喜歡在Windows平臺拿Eclipse做Java開發嗎??

你的問題還真是多啊,你說得對,但是在特別需求的情形下,我不得不採取一些“我不喜歡”的行為。
而這個就是一個,因為我需要在Linux平臺下部署Hadoop,而新安裝的CentOS裡面根本沒有Java的環境:

[user@localhost /]$ java -version
bash: java: 未找到命令...

而Java SE是Hadoop的一個先決條件

而且如果部署好了的話我也可以用Linux做Java開發了豈不美哉??

但是看起來網上的同類的教程非常多啊

我什麼時候說過這是一篇教程了??這只是作為我的一次過程記錄而已,如果可能的話我也希望它能夠成為其他人的參考,而且我也參考了很多人的安裝過程,最終我成功了。

站在了無數巨人的肩膀上。

好了不多說了,那就開始吧。

嗯,確實如此。首先需要安裝一個Linux的系統,沒必要是CentOS,也可以是Ubuntu、Fedora 、Debian什麼的隨你喜歡,用不用GUI也無所謂,因為即使我安裝了一個帶有GUI的CentOS,我的安裝過程實際上是用bash指令完成的。
在實際進行安裝之前,我必須提前說明:

和Windows不一樣,Linux系統是對大小寫敏感的,也就是說/Somewhere/a.zip/somewhere/A.zip並不在同一目錄下,也不是同一個檔名,這點請務必注意!!!
下文中出現的所有shell指令的真正內容都是從$之後開始的。

至於你是實體機還是虛擬機器這個區別應該不大,你可以實際拿個U盤去裝也可以下個VMWare或者Virtual Box什麼的。這裡我不做說明。

下載JDK壓縮包

總之,CentOS 8我安裝好了,當然你可能用的是Ubuntu 16.04什麼的這個就隨便了,接下來要從網路上下載一個JDK13的壓縮包(jdk-13_linux-x64_bin.tar.gz

這裡假設你無論是GUI下載還是wget下載方式,你都已經把壓縮包下載至/usr/download目錄下了

如果你的Linux系統有GUI並且系統預裝了Firefox,那麼你可以像在Windows裡一樣拿Firefox火速衝到JDK的下載地址,像這樣:

如果沒有GUI的話,你可以用wget指令:

[user@localhost /usr/lib/jvm/jdk-13]$ su root # 整個過程需要提升為root許可權進行,因為普通使用者不可以在usr、etc資料夾及它們的子資料夾下進行修改
[root@localhost /]$ mkdir /usr/download # 如果你沒有這個目錄的話就先鍵入這個指令,否則直接看下一句
[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"

注意:因為Oracle官網要求必須登入Oracle賬號才能下載JDK等內容,所以直接鍵入

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(實際上應當是180MB),那個東西根本就不是壓縮包而是一個請求頁面而已。所以如果通過命令列的方式下載只能通過上面的方式進行下載
下載好了之後檢視一下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作業系統下,此時檔名的位置被顯示為紅色,意思是說:

這是一個壓縮檔案

所以不必擔心,這不是錯誤,你可以繼續進行。

如果你發現188711447(約180MB)被5307(約5KB)(也就是說檔案大小嚴重不一致)替代了意味著你的下載連結是錯誤的,請詳細閱讀上文“注意”裡面的內容然後用rm jdk-13_linux-x64_bin.tar.gz刪掉這個檔案並重新下載,如果大小不一致但是差不多大有可能是你下載了其他的版本,也有可能是壓縮包損壞了,如果是後者請重新下載。

解壓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  #-- 這一步請耐心等待一會,需要一段時間
[root@localhost /usr/download]$ cd /usr/lib/jvm
[root@localhost /usr/lib/jvm]$ ls
jdk-13

你會看到在/usr/lib/jvm下存在一個叫做jdk-13的資料夾,我們進去看看

[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的所有元件都已經備齊了,接下來要進行配置。

新增環境變數

注意:這裡要求使用VIM

  • 如果你會使用VIM
    • 啊,那沒問題,繼續吧
  • 如果你不會使用VIM
    • 如果你使用的Linux系統帶有GUI介面
      • 你可以使用預裝的文字編輯器進行編輯,就像在Windows裡面使用記事本那樣。
    • 否則
      • 如果你想了解VIM
        • 找其他人的教程看看VIM的基本操作方法
      • 否則,如果你有值得信賴且能力夠強的朋友的話
        • 找他幫你弄弄
      • 否則
        • emmm……我在此由衷地替您感到悲哀

在Windows下使用安裝程式安裝的時候一般來說環境變數是被自動配置好的,但是很可惜我們現在是手動安裝,JDK的工作依賴於大量的環境變數中的路徑。

好像Oracle系的軟體都是這副死亞子,比如Oracle DB……

JDK需要這樣幾個環境變數:

  • JAVA_HOME :Java的主目錄,你把壓縮包包解壓之後得到的jdk-13資料夾所在的位置(並且包含jdk-13自身)
  • JRE_HOME:JRE的主目錄,JRE是執行Java應用程式的最基本軟體環境,所以如果你只是希望Java的程式能夠執行的的話你完全不需要安裝JDK,儘管JDK裡面帶有JRE。
  • CLASSPATH:Java提供的標準或公共類庫的位置
  • PATH:這是系統的環境變數,這個東西只是告知系統你的Java開發環境被安裝在了什麼位置,這個東西使你在任意目錄下都可以直接執行Java的開發工具比如javac等,直接鍵入javac就可以執行而不需要再重新鍵入/usr/lib/jvm/jdk-13/bin/javac
    Linux系統下的環境變數被儲存於若干個檔案裡,其作用範圍有所不同,有的只作用於當前使用者,而有的作用於全體使用者。而我們這裡的環境直接對全體使用者生效就可以了(因為除了root就我一個使用者user),所以,這裡我們會對/etc/profile進行修改。
    不過我們現在知道JAVA_HOME=/usr/lib/jvm/jdk-13,這個目錄意思是說包含了所有和Java執行環境相關的東西,我們看看裡面都有什麼
[user@localhost /usr/lib/jvm/jdk-13]$ ls
bin  conf  include  jmods  legal  lib  man  release

其中bin是Java所有開發工具(通常是可執行的應用程式)所在的目錄,而lib裡面則是Java提供的公共類庫,當然這個也就是我們在找的CLASSPATH了。
那麼,JRE_HOME怎麼辦呢??
早在JDK 8的時候,安裝好的JAVA_HOME下能夠找到一個叫做jre的資料夾,但是到JDK 13的時候剛才也看了,哪裡有jre呢??

其實不用考慮這個問題,因為新版本的JDK不僅附帶JRE,而且把JRE元件直接毀進JDK了,所以JRE_HOME可以直接給成JAVA_HOME就可以了。

因此我們用VIM開啟/etc/profile(因為是)進行編輯:

[root@localhost /usr/lib/jvm/jdk-13]$ vim /etc/profile

在這個檔案開頭加入如下內容:

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儲存退出,不過因為只是寫在了檔案裡,這些環境變數並沒有被實際的構建到核心中,因此需要手動執行一下這個檔案。

[root@localhost /usr/lib/jvm/jdk-13]$ source /etc/profile
[root@localhost /usr/lib/jvm/jdk-13]$ exit #退出root許可權

至此,安裝過程全部結束,JDK可以正常工作了,我們可以用下面這個指令檢驗一下:

[user@localhost /usr/lib/jvm/jdk-13]$ java -version

現在我們可以在Linux系統上使用JDK13進行開發了。

既然裝好了,不妨我們試一下吧!

說得對!!我們已經摩拳擦掌了,那就編寫一個Java程式測試一下吧!
隨便在某個位置建個資料夾編寫一個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

Ah, finally ...
開心!!

當然,之後我還會同樣記錄Hadoop的安裝過程等等更多的東西,敬請關注!!
以上