Eclipse Ganymede 同步發布 24 個項目,其中 Embedded Rich Client Platform(eRCP)讓開發者能以單一代碼庫構建桌面、Web、移動三端應用。本文作為三部曲終篇,詳細演示如何將基於 RCP 的任務備忘記事本遷移至 eRCP,涵蓋目標平台切換、代碼重構、模擬器調試、真機部署全流程。
關鍵差異:RCP 用 SWT/JFace/Workbench,eRCP 用 eSWT/eJFace/eWorkbench + Mobile Extensions。
eRCP 無 SelectionAdapter,需實現 SelectionListener 兩方法:
viewer.getCloseButton().addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) { handleDispose(); }
public void widgetDefaultSelected(SelectionEvent e) { /* 空實現 */ }
});
刪除:ApplicationActionBarAdvisor、ApplicationWorkbenchWindowAdvisor、ApplicationWorkbenchAdvisor、Perspective、TaskOrganizerApplication。eWorkbench 無透視圖、無主窗口顧問、無 Application 類。
同 RAP 遷移策略,表格單元格編輯改用 Dialog/Popup 彈出輸入框。
org.eclipse.core.runtime.applications、org.eclipse.ui.perspectives、org.eclipse.core.runtime.productsorg.eclipse.ercp.eworkbench.applications
com.devworks.tutorial.po.applicationPersonal Task Organizertrue(單實例運行)com.devworks.tutorial.po.view(啟動視圖)org.eclipse.ercp.eworkbenchorg.eclipse.ercp.eworkbench.eWorkbench.lnk 快捷方式路徑指向設備 JVM 與 eRCP 安裝目錄(如 \Program Files\J9、\Program Files\eRCP)\Program Files\eRCP\plugins\Program Files\eRCPj9foun-eworkbench.lnk → 應用列表出現 Task Organizer → 點擊運行| 平台 | 技術棧 | 核心修改 | 部署產物 |
|---|---|---|---|
| 桌面 | RCP (SWT/JFace/Workbench) | 基準代碼 | p2 Repository / 產品導出 |
| Web | RAP (RWT/RAP) | SingleSource 適配、SessionScope、Ajax 行為 | WAR 部署至 Servlet 容器 |
| 移動 | eRCP (eSWT/eJFace/eWorkbench) | SelectionListener、eWorkbench 擴展點、Mobile Extensions UI | JAR + eRCP Runtime 部署至設備 |
Ganymede 的 RCP/RAP/eRCP 三位一體,配合 p2 供應鏈、Subversion 團隊協作,構建了真正的「編寫一次,部署三端」企業級開發體系。掌握 eRCP 遷移精髓——識別平台差異點、最小化重構、最大化復用業務邏輯,是移動互聯網時代 Java 客戶端開發者的核心競爭力。