首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Linux RedHat AS 3 安裝 JDK 1.4.2 完整步驟與避坑指南

     編輯:Java 相關知識

環境基線

  • OS: RedHat Enterprise Linux AS 3 Update 3
  • JDK: `j2sdk-1_4_2_05-linux-i586.bin` (Sun 官方自解壓安裝包)
  • 架構: i586 (32 位元)

標準安裝流程

1. 複製安裝包到暫存目錄


cp j2sdk-1_4_2_05-linux-i586.bin /tmp
cd /tmp

2. 執行自解壓安裝 (關鍵:前面有點號!)


./j2sdk-1_4_2_05-linux-i586.bin
# 接受授權條款 (空白鍵翻頁、輸入 yes)
# 預設安裝至 /usr/java/j2sdk1.4.2_05

3. 設定系統級環境變數 (/etc/profile)


vi /etc/profile

# 在檔案末尾新增
export JAVA_HOME=/usr/java/j2sdk1.4.2_05
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

# 存檔離開 (:wq)

4. 立即生效並驗證


source /etc/profile

# 驗證
which java
java -version
javac -version
# 應顯示 java version "1.4.2_05"

5. 其他用戶生效


# 以其他用戶登入後執行
source /etc/profile

關鍵避坑:RedHat AS 3 完全安裝的 gcj 衝突

問題現象

  • 執行 `java` 提示找不到 `/usr/java/j2sdk1.4.2_05/jre/lib/i386/libjava.so` (檔案明明存在)
  • 移除環境變數後執行 `java` 出現完全不同的說明訊息

根本原因

RedHat AS 3 完全安裝預設包含 **GNU Compiler for Java (gcj)** 及其運行時 `libgcj`,系統 `/usr/bin/java` 為 gcj 版本的符號連結。若 `PATH` 中系統路徑 (`/usr/bin`) 在 `JAVA_HOME/bin` **之前**,系統會優先使用 gcj 而非 Sun JDK。

解決方案:確保 JDK 路徑優先


# /etc/profile 中 PATH 設定順序關鍵!
export PATH=$JAVA_HOME/bin:$PATH   # 正確:JDK 在前
# export PATH=$PATH:$JAVA_HOME/bin  # 錯誤:系統 gcj 會優先被找到

徹底解決:移除或重命名 gcj java


# 方案 A: 移除 gcj java 符號連結 (需 root)
rm /usr/bin/java
rm /usr/bin/javac
# 之後 source /etc/profile 即正確指向 Sun JDK

# 方案 B: 使用 alternatives 系統管理 (RedHat 標準方式)
/usr/sbin/alternatives --config java
# 選擇 Sun JDK 版本

# 方案 C: 修改用戶 ~/.bash_profile 覆蓋系統設定
export JAVA_HOME=/usr/java/j2sdk1.4.2_05
export PATH=$JAVA_HOME/bin:$PATH

JDK 1.5 於此系統的安裝提示

網友回報 JDK 1.5 在 AS 3 上安裝較順利,較少 gcj 衝突。若專案允許,建議直接使用 JDK 5.0+ 獲得 Generics、Annotation、Concurrency 等現代特性支援。

驗證清單

檢查項目指令預期結果
Java 執行檔來源which java/usr/java/j2sdk1.4.2_05/bin/java
版本資訊java -versionjava version "1.4.2_05"
編譯器可用javac -versionjavac 1.4.2_05
環境變數echo $JAVA_HOME/usr/java/j2sdk1.4.2_05
CLASSPATH 含 tools.jarecho $CLASSPATH含 $JAVA_HOME/lib/tools.jar

給初學者的建議

Linux 下 Java 環境配置的核心邏輯:**「誰在 PATH 前面,誰就是被執行的那個」**。理解 `alternatives` 系統、`/etc/profile` vs `~/.bash_profile` 載入順序、符號連結機制,能解決 90% 的「明明裝了卻跑不起來」問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved