針對 Windows 2000 Server 平台,詳細記錄 J2SDKEE 1.3、J2SDK 1.4、Jakarta Ant 1.3 的安裝、環境變量配置、驗證測試與示例應用部署全流程,供維護老舊系統參考。
| 變量名 | 變量值(追加) |
Path | ;D:\j2sdk1.4\bin;D:\j2sdkee1.3\bin;D:\jakarta-ant-1.3\bin |
CLASSPATH | ;D:\j2sdk1.4\lib\dt.jar;D:\j2sdk1.4\lib\tools.jar;D:\j2sdk1.4\jre\lib\rt.jar;D:\j2sdkee1.3\lib\j2ee.jar |
JAVA_HOME | D:\j2sdk1.4 |
J2EE_HOME | D:\j2sdkee1.3 |
ANT_HOME | D:\jakarta-ant-1.3 |
注意:Path 順序影響命令解析優先級,建議 JDK bin 置前。CLASSPATH 包含 .(當前目錄)隱含在首位。
3. 驗證測試
- J2EE Server 啟動:命令行執行
start j2ee -verbose。
- Web 管理控制台:瀏覽器訪問
https://localhost:8000,出現 J2EE 介面即成功。
- 端口衝突處理:若 8000 被佔用,修改
D:\j2sdkee1.3\config\web.properties 中 http.port=8000 為其他可用端口。
- 部署工具:執行
start deploytool 啟動圖形化部署配置工具。
4. 經典 EJB 示例:貨幣轉換器
4.1 組件接口定義
// Home 接口
public interface ConverterHome extends EJBHome {
Converter create() throws RemoteException, CreateException;
}
// Remote 接口
public interface Converter extends EJBObject {
BigDecimal dollarToYen(BigDecimal dollars) throws RemoteException;
BigDecimal yenToEuro(BigDecimal yen) throws RemoteException;
}
4.2 Bean 實現類
public class ConverterBean implements SessionBean {
BigDecimal yenRate = new BigDecimal("121.6000");
BigDecimal euroRate = new BigDecimal("0.0077");
public BigDecimal dollarToYen(BigDecimal dollars) {
return dollars.multiply(yenRate).setScale(2, BigDecimal.ROUND_UP);
}
public BigDecimal yenToEuro(BigDecimal yen) {
return yen.multiply(euroRate).setScale(2, BigDecimal.ROUND_UP);
}
// EJB 生命周期方法
public void ejbCreate() {}
public void ejbRemove() {}
public void ejbActivate() {}
public void ejbPassivate() {}
public void setSessionContext(SessionContext sc) {}
}
4.3 客戶端調用
public class ConverterClient {
public static void main(String[] args) {
try {
Context initial = new InitialContext();
Object objref = initial.lookup("java:comp/env/ejb/SimpleConverter");
ConverterHome home = (ConverterHome) PortableRemoteObject.narrow(objref, ConverterHome.class);
Converter converter = home.create();
BigDecimal param = new BigDecimal("100.00");
BigDecimal amount = converter.dollarToYen(param);
amount = converter.yenToEuro(param);
System.exit(0);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
5. 部署與運行步驟
- 使用
deploytool 打包 EJB JAR(含 ejb-jar.xml、jndi 名稱映射)。
- 部署至 J2EE Server。
- 運行客戶端驗證遠程調用。
6. 常見問題排查
- ClassNotFoundException:檢查 CLASSPATH 是否包含
j2ee.jar、rt.jar、客戶端 JAR。
- JNDI Lookup 失敗:確認
java:comp/env/ejb/SimpleConverter 名稱與部署描述符一致。
- RMI 通信異常:檢查防火牆、主機名解析、
java.rmi.server.hostname 系統屬性。
- Ant 構建失敗:確認
ANT_HOME/bin 在 Path 中,build.xml 路徑正確。
7. 歷史背景與現代替代
此配置基於 J2EE 1.3(2001 年),EJB 2.x 實體 Bean、CMP、RMI-IIOP 等技術棧已歷史使命結束。現代替代方案:
- Jakarta EE 9+/10 + WildFly / GlassFish / Open Liberty。
- Spring Boot 3.x 嵌入式容器,無需單獨應用服務器。
- Maven/Gradle 替代 Ant,依賴管理、約定優於配置。
- JDK 17/21 LTS,模塊化、Record、Pattern Matching、Virtual Threads。
老系統維護需謹慎,新項目請擁抱現代化技術棧。環境配置的本質是「依賴管理與隔離」,容器化(Docker)已成最佳實踐。
- 上一篇文章: Java Thread API 深度解讀:從源碼視角理解線程核心機制
- 下一篇文章: JDK 安裝與環境配置全攻略:Windows/Linux 跨平台實戰指南
Copyright ©
程式碼之家 All Rights Reserved