以下會說明:
- Linux 版的 Build Agent 如何安裝 Java 程式
- Linux 上如何設定 Java 執行所需之環境變
Java基礎說明
我們可以在 Oracle 所屬的 https://java.com/zh_TW/ 下載 Java,但在實際下載時,可能會發現 Java 相同的版號會有 JRE、JDK 兩種不同的版本,簡單來說這兩種的分別為:- JRE (Java Runtime Environment) - 可讓執行 Java 程式的軟體 - JRE 之 Wiki 網頁
- JDK (Java Development Kit) - 提供 Java 程式語言的開發套件 - JDK 之 Wiki 網頁
如何下載 Linux JDK
當我們前往 JDK 下載網頁 時,先找到要下載的 JDK 版號,然後選擇下載種類為「JDK」進入下載的選擇頁面後,請先勾選「Accept License Agreement」,才可以點下方的下載連結
Linux 平台可下載的版本有很多種,請依需求選擇要下載的版本,因為64位元作業系統相當普及了,所以一般狀況下應該選擇 x64 版,附檔名選擇 .tar.gz 的那一個
額外問題:為何不選擇 rpm ?
問題說明:因為 Linux 有許多套件版本,選擇 rpm 可能會發生以下狀況:
1. 不確定這個打包的 rpm 是否符合您所使用的 Linux
2. 若需要多個 JDK 版本並存時,rpm 安裝會互相覆蓋
3. 若有多台伺服器,基於整體環境的控管,您可能會希望「所有」Linux伺服器中,「額外安裝」的軟體要集中在一個方便管理的路徑
開始佈署 JDK
本例下載的檔案是 jdk-u8171-linux-x64.tar.gz,將下載的檔案上傳到 Linux 主機自己的 Home 目錄中,而我們要將 JDK 佈署於 /opt 目錄內執行以下指令cd /opt ## 變更目錄為/opt tar zxvf $HOME/jdk-8u171-linux-x64.tar.gz ## 解開打包的壓縮檔
解開檔案後,可以看到目錄 /opt 下多了一個名稱為jdk1.8.0_171的資料夾,全名為/opt/jdk1.8.0_171
佈署的部份,這樣就完成了,後面只要再做一些環境變數的設定就可以了
Java 環境變數
JAVA執行前,一般會必需要指定兩種變數:- JAVA_HOME
- PATH
- JDK_HOME
- JRE_HOME
- JAVA_BINDIR
- JAVA_ROOT
變數說明
- JAVA_HOME - 就是宣告 JAVA 放置的位置,就輸入以下的指令即可:
JAVA_HOME=/opt/jdk1.8.0_171
- PATH - 在 Linux 內則是尋找執行指令的路徑,如果沒有設定,可能會找不到 java 這個指令,要設定 PATH 請輸入以下指令:
PATH=$PATH:$JAVA_HOME/bin
或是
PATH=$PATH:$JRE_HOME/bin #(TFS Agent不適用,因為會裝JDK而不會是JRE)
補充說明:前面等號(=)後面的 $PATH 代表,新的 PATH 變數要帶入「原本的PATH變數內容」,然後我們在後面附加上 $JAVA_HOME/bin 這個路徑
原本是:PATH=/usr/local/bin:/usr/bin:/usr/bin
改成:PATH=/usr/local/bin:/usr/bin:/usr/bin:/opt/jdk1.8.0_171/bin
- JDK_HOME - 由於JDK是開發套件,在某些特殊的軟體,會偵測這個變數,一般來說會設定解壓縮的路徑
JDK_HOME=/opt/jdk1.8.0_171
或直接帶入 JAVE_HOME 也可以JDK_HOME=$JAVA_HOME
- JRE_HOME - 類似 JDK,有時某些軟體會偵測這個變數:
如果安裝的是JDK,會是JRE_HOME=$JAVA_HOME/jre
如果安裝的是JRE,則會是JRE_HOME=$JAVA_HOME
(TFS Agent不適用)
- JAVA_BINDIR - 類似 JDK,也是只有部分軟體會偵測這個變數,調用 JAVA 的 Binary 執行檔,通常會是
JAVA_BINDIR=$JAVA_HOME/bin
或是
JAVA_BINDIR=$JRE_HOME/bin
- JAVA_ROOT - 也是類似JDK,部份軟體才會使用,如果沒有特別的需求,設定為$JAVA_HOME即可
JAVA_ROOT=$JAVA_HOME
在 Linux 設定 Java 變數
環境變數的設定,可在登入之後下指令宣告,但是每重次新登入 Linux 都要宣告一次相當的麻煩,因此會調整 Profile 的設定,使 Java 變數在登入、啟動新 shell 時都會自動建立,大部份的 Linux,登入環境設定檔是 /etc/profile,修改這個檔案即可SuSE 團隊將所有 Profile 相關的變數設定,依種類區分為各個獨立的檔案,放置在資料夾 /etc/profile.d 下,Java 的設定請修改 /etc/profile.d/alljava.sh
※如果使用的是 SuSE Linux,建議依循 SuSE 團隊整理與規劃的方式來進行調整,以免設定散落在各處不好尋找 & 維護
- 一般 Linux - 請修改/etc/profile這個檔案,將以下指令附加到最後即可
# JAVA_HOME請務必先宣告,以免後面的變數變成空值 export JAVA_HOME=/opt/jdk1.8.0_171 export JAVA_BINDIR=$JAVA_HOME/bin export JAVA_ROOT=$JAVA_HOME export JDK_HOME=$JAVA_HOME export JRE_HOME=$JAVA_HOME/jre export PATH=$PATH:$JAVA_HOME/bin
- SuSE Linux - 請修改/etc/profile.d/alljava.sh
原始內容:for JDIR in /usr/lib64/jvm /usr/lib/jvm /usr/java/latest /usr/java; do #....(略) export JAVA_HOME=$JPATH unset JDK_HOME unset SDK_HOME done
## JDIR in 的後面插入路徑: /opt/jdk1.8.0_171 for JDIR in /opt/jdk1.8.0_171 /usr/lib64/jvm /usr/lib/jvm /usr/java/latest /usr/java; do #....(略) export JAVA_HOME=$JPATH export PATH=$PATH:$JAVA_HOME/bin # ← 插入這行 unset JDK_HOME unset SDK_HOME done
驗證
修改完成,請重新登入,登入後請使用以下指令確認是否有生效 # 確認 Java 環境變數echo $JAVA_HOME# 確認 PATH 路徑有包含 Java 的路徑
echo $PATH
沒有留言:
張貼留言