什麼是 Eclipse RCP?
Rich Client Platform (RCP) 是 Eclipse 平台的核心子集,移除 Java IDE 相關外掛後的「最小化工作台」。它提供:
- 基於 SWT/JFace 的原生 UI 元件(Tree、Table、Editor、View)
- Workbench:視角、視圖、編輯器、工具列、選單的桌面應用框架
- 基於 OSGi (Equinox) 的動態模組系統:啟動時按需載入 Bundle,支援熱部署/更新
- 標準化服務:偏好設定、幫助系統、自動更新、團隊協作(版控整合)
RCP 五大核心組件架構

- Workbench:UI 呈現層,SWT + JFace 構建,跨平台原生觀感。
- Workspace:資源管理(專案、檔案、變更通知)。
- Help:可擴充的線上說明系統(HTML/TOC)。
- Team:版本控制整合介面(CVS/SVN/Git 提供者以外掛形式接入)。
- Platform Runtime:Equinox OSGi 容器,掃描
plugins/ 目錄,建立登錄表,延遲啟動 Bundle。
擴充點:真正的「即插即用」
RCP 定義 Extension Point 契約,外掛宣告實作:
<extension point="org.eclipse.ui.perspectives">
<perspective class="com.example.MyPerspective" name="My View" />
</extension>
- 安裝外掛 → Perspective 自動出現在選單。
- 移除外掛 → Perspective 消失,核心不受影響。
- 形成樹狀擴充結構(核心 → 功能模組 → 具體實作),符合開放封閉原則。

SWT vs Swing/AWT
| 特性 | SWT | Swing/AWT |
| 繪圖方式 | JNI 呼叫 OS 原生 API | Java 2D 純軟體繪製 |
| 觀感 | 與平台完全一致 | 跨平台統一(Metal/Nimbus) |
| 效能 | 高(原生元件) | 較低(重繪開銷大) |
| 缺點 | 非標準 API、平台移植需原生庫 | 記憶體佔用大、觀感非原生 |
知名 RCP 應用案例
- Eclipse IDE 本身即為最大 RCP 應用。
- IBM Lotus Notes / Sametime:企業協同平台。
- NASA Maestro:火星探測器任務規劃工具。
- JAlbum:相簿產生器。
- RapidMiner:資料採礦工作台。
學習資源與入門建議
- 官方 Eclipse RCP 文件(英文,最權威)。
- 《Eclipse Rich Client Platform》書籍(第 2 版涵蓋 3.x/4.x)。
- 從
File → New → Plug-in Project → "RCP Application with a View" 範本啟動。
- 研究
org.eclipse.ui.ide、org.eclipse.core.resources 原始碼理解最佳實務。
- 上一篇文章: Java 安全中斷執行緒:為什麼不該用 stop()、正確使用 interrupt() 與共享旗標
- 下一篇文章: Eclipse RCP 能否取代 Web 技術?雙棲開發的理性抉擇
Copyright ©
程式碼之家 All Rights Reserved