JDK為開發Java程式語言必備的工具,在Linux上通常會使用OpenJDK來作為預設的Java開發工具以及執行環境(Runtime),OpenJDK的取得十分方便,但是套件過於零散,難以手動更新。更新JDK的版本除了可以讓開發者使用到最新的Java函式庫外,就連執行Java程式時的效能、穩定性和安全性通常也比較好。



OpenJDK的Java版本通常較舊(甚至會差一個大版本號),可以在java指令後面加上「-version」參數來查看Java的版本。

java -version
javac -version

linux-jdk

如果想要在Linux上安裝最新的JDK版本,可以參考以下步驟。

下載JDK

Oracle的官網可以下載到最新的JDK版本,官網網址如下:

筆者除了會下載JDK之外,通常還會下載其相關的文件和範例,如此一來在開發Java程式時就不需要依賴網路,能夠增加開發效率。此外,還需要將JRE的「security」功能設置為「unlimited」(crypto.policy=unlimited),使JRE能夠使用AES-256等進階的安全相關的演算法。如果您覺得要載一堆東西很麻煩,可以直接下載筆者打包的完整JDK(RAR壓縮),可以透過以下GitHub連結下載:

筆者打包好的JDK壓縮包,一般API的文件已包含在「docs/api」目錄下,JavaFX API的文件已包含在「docs/api-javafx」目錄下,範例程式已包含在「demo」和「sample」目錄下。

安裝JDK

JDK的安裝方法十分簡單,首先將整包JDK壓縮檔解壓縮,解壓縮後會得到一個目錄,目錄名稱為「jdk」接上JDK的版本,例如「jdk1.8.0_181」。接著使用以下指令將該目錄放置於「/usr/lib」目錄下(版本號碼請自行修改):

sudo mv ./jdk1.8.0_181 /usr/lib

linux-jdk

在終端機輸入以下指令,使用vim文字編輯器來編輯「/etc/profile」檔案。這個profile檔案裡寫的指令在系統開機時會自動執行。

sudo vim /etc/profile

linux-jdk

使用「export」指令來設定Java相關的系統環境變數。要設定的變數有「JAVA_HOME」、「JRE_HOME」、「PATH」、「CLASSPATH」。「JAVA_HOME」為JDK的目錄,就是剛剛複製到「/usr/lib」目錄中的JDK目錄,「JRE_HOME」為JRE(Java Runtime Environment)的目錄,JDK有包含JRE,位置就在JDK目錄下的「jre」目錄。「PATH」變數為系統尋找指令(檔案)的路徑,將「JAVA_HOME」變數和「JRE_HOME」變數加進原先的「PATH」變數前。「CLASSPATH」變數為Java尋找Java程式所使用到的Class路徑,路徑可以是目錄也可以是.jar檔案,將目前的目錄「.」和「$JAVA_HOME/lib」與「$JAVA_HOME/jre/lib」加進變數中吧!

以下是範例:

export JAVA_HOME=/usr/lib/jdk1.8.0_181
export JRE_HOME=$JAVA_HOME/jre 
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

linux-jdk

接著要設定在終端機下輸入java或是javac指令時,實際對應到的java和javac檔案。在終端機下輸入以下指令,記得修改JDK目錄名稱使其符合您所使用的JDK版本:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jdk1.8.0_181/bin/java 300

linux-jdk

這段指令的用途是要將剛才手動複製進「/usr/lib」目錄中的JDK目錄位置加進「java」這個指令的候選名單中,數字300是他的優先權,愈小優先權愈高。終端機會根據這個候選名單決定當使用者輸入「java」指令時,應該要實際對應到哪個位置下的檔案,如果較高優先權的路徑檔案不存在,就會再嘗試次高優先權的路徑。

同樣地,javac也要使用這樣的指令。

sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jdk1.8.0_181/bin/javac 300

linux-jdk

接著輸入以下指令,來指定當輸入「java」指令時最優先對應到的路徑位置。

sudo update-alternatives --config java

linux-jdk

如果候選名單中有兩個以上的路徑,會需要選擇實際要去執行的檔案。對照好路徑,填入選項編號即可。

linux-jdk

同樣地,javac也要進行這樣的設定。

sudo update-alternatives --config javac

linux-jdk

linux-jdk

重新開機後,輸入以下指令,查看Java版本是否已經更新。

java -version
javac -version

linux-jdk