Java 原生運行於 Linux,雖然發行版自帶 OpenJDK,但為兼容性與功能完整性,生產環境建議手動安裝 Oracle JDK。本文以 Debian 安裝 JDK 1.7 為例,步驟適用於 JDK 8/11/17 等版本(調整路徑與版本號即可)。
.tar.gz 壓縮包/tmp 目錄(重啟自動清理)i586 (32位) / x64 (64位),uname -m 確認# 進入下載目錄
cd /tmp
# 解壓至標準目錄 /usr/lib/jvm
sudo tar zxvf jdk-7u75-linux-x64.tar.gz -C /usr/lib/jvm
# 驗證解壓結果
ls /usr/lib/jvm/
# 輸出應包含:jdk1.7.0_75
sudo vim /etc/profile
文件末尾追加:
# JDK 環境變量
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_75
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile
# 註冊 java
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_75/bin/java 300
# 註冊 javac
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_75/bin/javac 300
# 配置默認版本(交互選擇剛安裝的版本,通常是最後一項)
sudo update-alternatives --config java
sudo update-alternatives --config javac
優先級 300 確保優於系統自帶 OpenJDK(通常優先級 100-200)。
java -version
# 預期輸出:
# java version "1.7.0_75"
# Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
# Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)
javac -version
# javac 1.7.0_75
cd /tmp
cat > Hello.java <<'EOF'
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, Debian JDK 1.7!");
}
}
EOF
# 編譯
javac Hello.java
# 運行
java Hello
# 輸出:Hello, Debian JDK 1.7!
| 問題 | 原因與解決 |
|---|---|
java: command not found | 環境變量未生效 → source /etc/profile 或重新登入 |
| 版本不符預期 | update-alternatives --config java 重新選擇優先級最高的版本 |
| 權限不足 | 編譯/運行目錄需寫入權限,或 chmod +x Hello.class |
| 32/64 位不匹配 | file /usr/lib/jvm/jdk1.7.0_75/bin/java 確認架構,與 uname -m 一致 |
推薦使用 SDKMAN! 管理多版本 JDK:
# 安裝 SDKMAN
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
# 列出可用版本並安裝
sdk list java
sdk install java 17.0.10-tem # 或 8.0.412-tem, 21.0.2-tem 等
# 切換版本
sdk use java 17.0.10-tem
sdk default java 17.0.10-tem
Debian 安裝 JDK 核心步驟:下載解壓 → 配置環境變量 → 註冊 alternatives → 驗證版本。掌握此流程,任意版本 JDK 均可輕鬆部署。生產環境建議配合 SDKMAN 實現多版本共存與快速切換。