FreeBSD Ports 集合提供源碼編譯安裯方式,適用於定制化構建。本文記錄 FreeBSD 5.x/6.x 時代 (約 2005 年) 通過 Ports 安裝 JDK 1.4.2 (需 Linux 兼容層)、Eclipse 3.1、JBoss 3.2.5 (含 Tomcat 5.x) 的完整編譯過程、環境變量配置、磁碟空間預估、**僅供歷史 BSD Java 開發環境考古參考**。
至少預留 1.2 GB+:JDK 1.4.2 源碼編譯極其龐大,Ports 過程中臨時文件佔用巨大,建議單獨分區掛載
/usr/ports或/usr/obj。
# 1. 安裝 Linux 兼容層 (JDK 1.4 需要)
# /etc/fstab 添加: linprocfs /compat/linux/proc linprocfs rw 0 0
# 安裝 linux_base 包 (Ports: emulators/linux_base-f10 等)
# 2. 下載 JDK 1.4.2 所需分發文件至 /usr/ports/distfiles/
# bsd-jdk14-patches-6.tar.gz
# j2sdk-1_4_2_05-linux-i586.bin
# j2sdk-1_4_2-bin-scsl.zip
# j2sdk-1_4_2-src-scsl.zip
# (可選) jboss-3.2.5-src.tar.bz2
# 3. 編譯安裝 JDK (耗時極長,建議 screen/tmux 後台運行)
cd /usr/ports/java/jdk14
make install clean
# 4. 設置環境變量 (csh/tcsh 為例,bash 請改 ~/.bashrc)
# ~/.cshrc
setenv JAVA_HOME /usr/local/jdk1.4.2
setenv CLASSPATH $JAVA_HOME/lib
set path = ($path $JAVA_HOME/bin)
source ~/.cshrc # 立即生效,無需重新登錄
# 5. 安裝 Eclipse 3.1
cd /usr/ports/java/eclipse
make install clean
# 6. 安裝 JBoss 3.2.5
cd /usr/ports/java/jboss3
make install clean
# 7. 啟動 JBoss 驗證
/usr/local/jboss3.2/bin/run.sh
# 訪問 https://localhost:8080/ 查看 JBoss 默認頁面
| 軟體 | Ports 路徑 | 備註 |
|---|---|---|
| JDK 1.4.2 | /usr/ports/java/jdk14 | 需 Linux 兼容層、手動下載分發文件 |
| Eclipse 3.1 | /usr/ports/java/eclipse | SWT 需 GTK2、X11 庫 |
| JBoss 3.2.5 | /usr/ports/java/jboss3 | 含 Tomcat 5.0.x |
| MySQL | /usr/ports/databases/mysql50-server | 另行安裝 |
# 驗證 Java
java -version
# java version "1.4.2_05"
# Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-b04)
# Java HotSpot(TM) Client VM (build 1.4.2_05-b04, mixed mode)
# 驗證 JBoss
ps aux | grep java
# 應見 -Djboss.home=/usr/local/jboss3.2 等參數
| 維度 | 2005 年 (Ports 編譯) | 2024 年 (現代) |
|---|---|---|
| JDK 獲取 | 手動下載 SCSSL 分發、打補丁編譯 | pkg install openjdk17 / openjdk21 (預編譯二進制,秒級安裝) |
| Eclipse | Ports 編譯 SWT 原生庫 | 官網下載安裝包 / Flatpak / pkg install eclipse (版本較舊) |
| 應用服務器 | JBoss 3.2 (EJB 2.x) | WildFly 30+ / Quarkus / Helidon / Spring Boot 內嵌 |
| 構建工具 | Ant 手寫 build.xml | Maven / Gradle / Bazel |
| 容器化 | 無 | Docker / Podman / containerd (FreeBSD 支持 Linux 兼容層運行容器) |
FreeBSD Ports 源碼編譯安裝 JDK/Eclipse/JBoss 是極具極客精神的歷程,見證了 Java 在 BSD 平台的早期探索。現代 FreeBSD 開發者享受預編譯包管理、容器化部署、現代構建工具帶來的效率紅利。理解這段歷史,有助於排查遷移中遇到的「路徑依賴、編譯參數、原生庫版本」等深層問題。