前言:Eclipse 不只是 Java IDE
Eclipse 是一個開源、基於 Java、可擴展的開發平台。其核心只是一個微型運行時核心,所有功能(含 JDT、PDE、CVS 整合、UML 建模)皆以插件形式提供。這種「一切皆插件」的架構賦予了極大的彈性:C/C++、PHP、Python、模型驅動、甚至非軟體開發應用(如 CMS)均可建構於其上。IBM WebSphere Studio、Rational 產品線皆以 Eclipse 為基座。
開源授權:CPL 1.0 的商業友善策略
- 採用 Common Public License 1.0(OSI 認證)。
- 衍生作品需開源 Eclipse 原始碼修改部分,但自有新增程式碼可選擇任意授權(含專有)。
- 無「病毒式」傳染效應,鼓勵商業廠商投入生態建設。
治理結構:Eclipse Foundation
- 策略委員會:IBM、Oracle、Red Hat、SAP 等策略會員派代表。
- 專案管理委員會(PMC)統籌頂層專案,下分子專案、組件,負責人由貢獻度決定。
- OTI(IBM 子公司)早期主導核心開發,現已完全社區化。
工作台 UI 架構
- View(視圖): 如 Navigator、Outline、Tasks、Problems,可拖曳堆疊。
- Editor(編輯器): 佔據中心區域,依檔案類型自動匹配(Java、XML、屬性檔等)。
- Perspective(透視圖): View/Editor 的預設佈局組合(Resource、Java、Debug、Plug-in Development 等)。
- 快捷列: 左側透視圖切換圖示,支援自訂。
Java 開發工具(JDT)體驗亮點
- 增量編譯: 存檔即編譯,紅線標記語法錯誤,燈泡圖示提供 Quick Fix(如自動補全變數宣告)。
- 程式碼自動完成: Ctrl+Space 觸發,上下文感知方法、關鍵字、範本。
- 重構支援: 重新命名、提取方法/介面、移動類別等,全專案同步更新引用。
- 除錯透視圖: 變數檢視、斷點管理、運算式評估、顯示視圖執行片段程式碼。
插件生態系統精選
| 領域 | 代表插件 |
| 版本控制 | CVS(內建)、Subclipse、EGit、ClearCase、PVCS |
| UML 建模 | OMONDO EclipseUML(免費類別圖)、Rational XDE、Together |
| Web/XML | XMLBuddy、Dreamweaver 整合、Sysdeo Tomcat Launcher |
| 圖形/視覺化 | Batik SVG、Macromedia Flash |
| 應用伺服器 | JBoss、WebLogic、WebSphere 整合插件 |
實戰:安裝 OMONDO EclipseUML 進行類別圖建模
- 下載 GEF (Graphical Editor Framework) 並解壓至 Eclipse 根目錄。
- 下載 OMONDO EclipseUML,解壓至
plugins/ 目錄。
- 重啟 Eclipse,Java 透視圖中
New → Other → UML → Class Diagram。
- 從 Package Explorer 拖拉既有 Java 類別至圖面 → 逆向工程生成類別圖。
- 或使用工具列
New Class、Association 正向建模,原始碼即時同步生成。



平台核心架構五大組件
- Platform Runtime(運行時核心): 啟動時掃描
plugins/ 建立註冊表,延遲載入插件(按需啟動)。
- Workspace(工作區): 管理專案、檔案、資源變更事件通知(IResourceChangeListener)。
- Workbench(工作台): 基於 SWT + JFace 實現 UI,提供 View/Editor/Perspective 框架。
- Team Support(團隊支援): 版控整合框架,提供同步視圖、衝突解決 UI。
- Help(幫助系統): 可擴展導航結構,插件以 HTML 形式貢獻文件。

SWT 與 JFace:原生外觀與高階 UI 工具包
- SWT 直接對應作業系統原生元件(Win32、GTK、Cocoa),效能優於 Swing,外觀原生。
- JFace 建立在 SWT 之上,提供 Viewer、ContentProvider、LabelProvider 等 MVC 結構,簡化表格、樹狀、清單開發。
- 移植性:主流 OS 皆有 SWT 移植版;純 Java 應用若不使用 SWT 不受影響。
展望
Eclipse 以成熟、健壯、優雅的插件架構,聚集全球數萬開發者共建生態。未來將持續向通用桌面整合平台演進:豐富建模、嵌入式開發、雲端原生工具、AI 輔助編程等領域持續擴展。