針對 CentOS 7 最小化安裝/標準安裝預裝 OpenJDK 的情況,本文提供從卸載系統 JDK、下載驗證 Oracle JDK 包、解壓安裝、配置永久環境變量到驗證生效的完整操作筆記,特別記錄 `wget` 下載 Oracle 官網頁面導致 `tar` 解壓失效的避坑經驗。
# 1. 查詢所有 java 相關 rpm 包 rpm -qa | grep java # 2. 僅卸載 OpenJDK 核心包(保留 tzdata-java 等系統依賴) rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64 rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64 rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64 rpm -e --nodeps java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64 # 3. 驗證剩餘包 rpm -qa | grep java # 應僅剩:tzdata-java、python-javapackages、javapackages-tools
mkdir -p /usr/local/jdk cd /usr/local/jdk
Oracle 官網需登錄接受許可協議,`wget` 直接下載通常得到登錄頁 HTML,導致後續解壓報錯。
**正確姿勢**:瀏覽器登錄 Oracle → 下載 `jdk-8u131-linux-x64.tar.gz` → `scp` / `rz` / WinSCP 上傳至 `/usr/local/jdk/`。
file jdk-8u131-linux-x64.tar.gz # 正確輸出:gzip compressed data, from Unix # 錯誤輸出:HTML document, ASCII text → 文件損壞,重新上傳
tar -zxvf jdk-8u131-linux-x64.tar.gz # 產生目錄:jdk1.8.0_131 mv jdk1.8.0_131 jdk8 # 可選,簡化路徑 rm -f jdk-8u131-linux-x64.tar.gz # 清理壓縮包
vi /etc/profile
在文件末尾追加:
# JDK 環境變量 export JAVA_HOME=/usr/local/jdk/jdk8 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin
立即生效:
source /etc/profile
java -version # java version "1.8.0_131" # Java(TM) SE Runtime Environment (build 1.8.0_131-b11) # Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode) javac -version # javac 1.8.0_131
| 現象 | 原因 | 解決 |
|---|---|---|
| `tar: not in gzip format` | `wget` 下載到 HTML 頁面 | `file` 驗證,瀏覽器下載上傳 | `bash: java: command not found` | 環境變量未生效 | `source /etc/profile` 或重新登錄 SSH |
| `cannot execute binary file` | 架構不匹配(32位裝64位) | `uname -m` 確認 x86_64,下載對應包 |
| 多版本切換需求 | 項目需不同 JDK | `alternatives --config java` 或 SDKMAN |
alternatives --install /usr/bin/java java /usr/local/jdk/jdk8/bin/java 1 alternatives --install /usr/bin/javac javac /usr/local/jdk/jdk8/bin/javac 1 alternatives --install /usr/bin/jar jar /usr/local/jdk/jdk8/bin/jar 1 # 切換:alternatives --config java
CentOS 7 配置自定義 JDK 核心流程:rpm 卸載 OpenJDK → 瀏覽器下載 Oracle JDK tar.gz → file 驗證文件類型 → tar 解壓 → /etc/profile 配置 JAVA_HOME/PATH → source 生效 → java -version 驗證。關鍵避坑點:**拒絕 wget 直接下載 Oracle 官網鏈接,務必用 `file` 命令驗證壓縮包完整性**。