Linux(centOS)下安裝JDK1.8(2021/06最新版)
一.安裝環境
作業系統:CentOS 7
JDK版本:1.8
工具:SecureCRT
二.安裝步驟
step1:下載JDK 1.8安裝包
登入oracle官網:https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html
oracle官網改版後,獲取下載連結的方式有所改變,按照以上步驟獲取到初步的地址後,需要進行一下修改,獲取到的地址如下:
https://www.oracle.com/webapps/redirect/signon?nexturl=https://download.oracle.com/otn/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz
我們只需要藍色的這部分地址,並將其中標紅的部分otn替換為otn-pub
https://download.oracle.com/otn/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz
這個位置如果使用otn作為拼接wget地址的話,下載到的檔案大小隻有5M左右,是個破損檔案,是解壓不了的
替換後為:
https://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz
然後拼接到wget命令後面,最終的下載地址為:
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/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz
在usr/local下新建一個jdk1.8目錄,並下載壓縮包:
[root@192 /]# cd usr/local/
[root@192 local]# mkdir jdk1.8
[root@192 local]# cd jdk1.8/
[root@192 jdk1.8]# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"
step2:解壓
[root@192 jdk1.8]# tar -zxvf jdk-8u141-linux-x64.tar.gz
step3:配置環境變數
1.編輯 profile 檔案
[root@192 jdk1.8]# vi /etc/profile
按i進入編輯狀態,在尾部新增如下命令
# Sun JDK profile
export JAVA_HOME=/usr/local/jdk1.8/jdk1.8.0_141
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
2.新增完成後按esc退出編輯,:wq儲存退出(esc進入一般模式,:wq儲存退出)
3.執行命令使/etc/profile檔案生效
source /etc/profile
4.命令測試
4.1 使用 java -version 和 javac -version 命令檢視jdk版本及其相關資訊,不會出現command not found錯誤,且顯示的版本資訊與前面安裝的一致。
4.2 echo $JAVA_HOME, echo $CLASSPATH, echo $PATH,看看自己的配置是否都正確。
三.可能出現的問題
錯誤一:
每次重啟時,若jdk版本不正確,或者使用java -version顯示不是所需版本,使用javac -version會出現command not found錯誤,解決方法是再次執行source /etc/profile,使/etc/profile檔案生效。顯然每次這麼操作很麻煩,因此我們編輯vi ~/.bashrc,在最後面加一句source/etc/profile
錯誤二:
下載的壓縮檔案解壓的時候出現如下錯誤:
[root@192 jdk1.8]$ tar -zxvfjdk-8u141-linux-x64.tar.gz
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
出現以上問題,大概率是下載的壓縮包有損壞,首先檢視下載的檔案大小:
命令:ls -lht檢視檔案大小
如果檔案只有幾十K或者幾M,可以確定是檔案損壞,重新下載完整的壓縮包就可以了,正常大小是170M左右
其次在考慮是以下處理方式:
解決方法一:原因是這個壓縮包沒有用gzip格式壓縮,所以不用加z指令
[root@192 jdk1.8]$ tar -xvf jdk-8u141-linux-x64.tar.gz
解決方法二:
把下載下來的檔案重新命名,再執行解壓命令
[root@192 jdk1.8]$ mv jdk-8u141-linux-x64.tar.gz jdk-8u141-linux-x64.tar
[root@192 jdk1.8]$ tar -zxvf jdk-8u141-linux-x64.tar