cp j2sdk-1_4_2_05-linux-i586.bin /tmp
cd /tmp
./j2sdk-1_4_2_05-linux-i586.bin
# 接受授權條款 (空白鍵翻頁、輸入 yes)
# 預設安裝至 /usr/java/j2sdk1.4.2_05
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)
source /etc/profile
# 驗證
which java
java -version
javac -version
# 應顯示 java version "1.4.2_05"
# 以其他用戶登入後執行
source /etc/profile
RedHat AS 3 完全安裝預設包含 **GNU Compiler for Java (gcj)** 及其運行時 `libgcj`,系統 `/usr/bin/java` 為 gcj 版本的符號連結。若 `PATH` 中系統路徑 (`/usr/bin`) 在 `JAVA_HOME/bin` **之前**,系統會優先使用 gcj 而非 Sun JDK。
# /etc/profile 中 PATH 設定順序關鍵!
export PATH=$JAVA_HOME/bin:$PATH # 正確:JDK 在前
# export PATH=$PATH:$JAVA_HOME/bin # 錯誤:系統 gcj 會優先被找到
# 方案 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 在 AS 3 上安裝較順利,較少 gcj 衝突。若專案允許,建議直接使用 JDK 5.0+ 獲得 Generics、Annotation、Concurrency 等現代特性支援。
| 檢查項目 | 指令 | 預期結果 |
|---|---|---|
| Java 執行檔來源 | which java | /usr/java/j2sdk1.4.2_05/bin/java |
| 版本資訊 | java -version | java version "1.4.2_05" |
| 編譯器可用 | javac -version | javac 1.4.2_05 |
| 環境變數 | echo $JAVA_HOME | /usr/java/j2sdk1.4.2_05 |
| CLASSPATH 含 tools.jar | echo $CLASSPATH | 含 $JAVA_HOME/lib/tools.jar |
Linux 下 Java 環境配置的核心邏輯:**「誰在 PATH 前面,誰就是被執行的那個」**。理解 `alternatives` 系統、`/etc/profile` vs `~/.bash_profile` 載入順序、符號連結機制,能解決 90% 的「明明裝了卻跑不起來」問題。