在第一次開啟 Eclipse 時,首先看到的是下面的歡迎畫面:
圖 1. Eclipse 工作台
Eclipse 工作台由幾個稱為 視圖(view) 的窗格組成,比如左上方的 Navigator 視圖。窗格的集合稱為 透視圖(perspective)。預設的透視圖是 Resource 透視圖,它是一個基本的通用視圖集,用於管理項目以及查看和編輯項目中的檔案。
Navigator 視圖 允許您建立、選擇和刪除項目。Navigator 右側的窗格是 編輯器地區。取決於 Navigator 中選定的文件類型,一個適當的編輯器視窗將在這裡開啟。如果 Eclipse 沒有註冊用於某特定文件類型(例如,Windows 系統上的 .doc 檔案)的適當編輯器,Eclipse 將設法使用外部編輯器來開啟該文檔。
Navigator 下面的 Outline 視圖 在編輯器中顯示文檔的大綱;這個大綱的準確性取決於編輯器和文檔的類型;對於 Java 源檔案,該大綱將顯示所有已聲明的類、屬性和方法。
Tasks 視圖 收集關於您正在操作的項目的資訊;這可以是 Eclipse 產生的資訊,比如編譯錯誤,也可以是您手動添加的任務。
該工作台的大多數其他特性,比如菜單和工具列,都應該和其他那些熟悉的應用程式類似。一個便利的特性就是不同透視圖的捷徑工具列,它顯示在螢幕的左端;這些特性隨上下文和曆史的不同而有顯著差別。Eclipse 還附帶了一個健壯的協助系統,其中包括 Eclipse 工作台以及所包括的外掛程式(比如 Java 開發工具)的使用者指南。至少瀏覽一遍這個協助系統是值得的,這樣可以看到有哪些可用的選項,同時也可更好地理解 Eclipse 的工作流程。
為繼續這個短暫的 Eclipse 之旅,我們將在 Navigator 中建立一個項目。按右鍵 Navigator 視圖,然後選擇 New=>Project。當 New Project 對話方塊出現時,選擇左面的 Java。標準 Eclipse 只有一種 Java 項目類型,名為“Java Project”。如果安裝了外掛程式來提供 JSP 和 servlet 支援,我們會從這裡看到一個用於 Web 應用程式的附加選項。眼下,請選擇 Java Project,在提示項目名稱時輸入“Hello”,然後按 Finish。
接下來,我們將檢查一下 Java 透視圖。取決於您喜歡的螢幕管理方式,您可以通過選擇 Window=>Open Perspective=>Java 來改變當前視窗中的透視圖,也可以通過選擇 Window=>New Window,然後再選擇這個新的透視圖,從而開啟一個新的視窗。
正如您可能預期的那樣,Java 透視圖包含一組更適合於 Java 開發的視圖。其中之一就是左上方的視圖,它是一個包含各種 Java 包、類、jar 和其他檔案的階層。這個視圖稱為 Package Explorer。還要注意主菜單已經展開了——並且出現了兩個新的功能表項目:Source 和 Refactor。
Java 開發環境(JDE)
為實驗一下 Java 開發環境,我們將建立並運行一個“Hello, world”應用程式。使用 Java 透視圖,按右鍵“Hello”項目,選擇 New=>Class,如圖 2 所示。在隨後出現的對話方塊中,鍵入“Hello”作為類名稱。在“Which method stubs would you like to create?”下面,選中“public static void main(String[] args)”複選框,然後按 Finish。
圖 2. 在 Java 透視圖中建立新類
這樣將在編輯器地區建立一個包含 Hello 類和空的 main() 方法的 .java 檔案,如圖 3 所示。然後向該方法添加如下代碼(注意其中 i 的聲明是有意省略了的):
圖 3. Java 編輯器中的 Hello 類
您會在鍵入時注意到 Eclipse 編輯器的一些特性,包括語法檢查和代碼自動完成。在 2.1 版(我曾下載 M2 版來試用過)中,當您鍵入開括弧或雙引號時,Eclipse 會自動提供配對的符號,並將游標置於符號對之內。
在其他情況下,您可以通過按 Ctrl-Space 來調用代碼自動完成功能。代碼自動完成提供了上下文敏感的建議列表,您可通過鍵盤或滑鼠來從列表中選擇。這些建議可以是針對某個特定對象的方法列表,也可以是基於不同的關鍵字(比如 for 或 while)來展開的代碼片斷。
語法檢查依賴增量編譯。每當您儲存代碼,它就在後台接受編譯和語法檢查。預設情況下,語法錯誤將以紅色底線顯示,一個帶白 “X” 的紅點將出現在左邊沿。其他錯誤在編輯器的左邊沿通過燈泡狀的表徵圖來指示;這些就是編輯器或許能為您修複的問題——即所謂的Quick Fix(快速修複)特性。
上面的代碼例子在 for 語句後面有一個燈泡狀表徵圖,因為 i 的聲明被省略了。雙擊該表徵圖將調出建議的修複列表。在此例中,它將提供建立一個類欄位 i、一個局部變數 i 或一個方法參數 i 的建議;單擊其中的每一個建議都會顯示將要產生的程式碼。圖 4 顯示了該建議列表和建議建立一個局部變數之後產生的程式碼。
圖 4. Quick Fix 建議
雙擊該建議就會把建議代碼插入到代碼中的恰當位置。
一旦代碼無錯誤地編譯完成,您就能夠從 Eclipse 菜單上選擇 Run 來執行該程式(注意這裡不存在單獨的編譯步驟,因為編譯是在您儲存代碼時進行的。如果代碼沒有語法錯誤,它就可以運行了)。這時會出現一個具有適當預設設定的 Launch Configurations 對話方塊;請按右上方的 Run 按鈕。一個新的選項卡式窗格將出現在下面的窗格(控制台)中,其中顯示了程式的輸出,如圖 5 所示。
圖 5. 程式的輸出
也可以在 Java 調試器中運行程式。首先雙擊編輯器視圖左端的灰色邊沿,從而在調用 System.out.println() 之後的 main() System.out.println() 中設定一個斷點。一個藍色的點將會出現在那裡。然後從 Run 菜單上選擇 Debug。正如上面描述的,這時會出現一個 Launch Configurations 對話方塊。請選擇 Run。透視圖將自動切換到 Debug 透視圖,其中具有許多有趣的新視圖,如圖 6 所示:
圖 6. Debug 透視圖
首先,請注意該透視圖左上方的 Debug 視圖。這個視圖顯示呼叫堆疊,並且標題列中有一個工具列,它允許您控製程序的執行,包括繼續、掛起或終止程式、跟蹤下一個語句、逐步執行下一個語句,或者從方法返回。
右上方的窗格包含許多選項卡式的視圖,包括 Variables、Breakpoints、Expressions 和 Display。這裡我單擊了 Variables 視圖,以便我們能夠看到 i 的當前值。
可以通過上下文敏感的協助,獲得關於這些視圖的更多資訊:單擊視圖的標題,然後按 F1。
附加外掛程式
除了像 JDT 這樣用於編輯、編譯和調試應用程式的外掛程式外,還有些可用的外掛程式支援從建模、產生自動化、單元測試、效能測試、版本控制到組態管理的完整開發過程。
Eclipse 標準地附帶了配合 CVS 使用的外掛程式,CVS 是用於原始碼控制的開放原始碼並發版本系統(Concurrent Versions System)。Team 外掛程式串連到 CVS 伺服器,允許Team Dev的成員操作一組原始碼檔案,卻不會相互覆蓋其他人的更改。這裡不打算進一步探討如何從 Eclipse 內部進行原始碼控制,因為這需要安裝 CVS 伺服器,不過支援Team Dev而不只是獨立的開發,這是 Eclipse 的一個重要的必備特性。
已經可用或已宣布要推出的一些第三方外掛程式包括:
版本控制和組態管理 CVS Merant PVCS Rational ClearCase
UML 建模 OMONDO EclipseUML Rational XDE (代替 Rose) Together WebSphere Studio Edition
圖形 Batik SVG Macromedia Flash
Web 開發、HTML、XML Macromedia Dreamweaver XMLBuddy
應用伺服器整合 Sysdeo Tomcat launcher
例子:一個用於 UML 建模的外掛程式
要查看外掛程式的例子,以及查看它是如何與 Eclipse 整合的,請下載流行的 OMONDO EclipseUML(http://www.eclipseuml.com/);您需要註冊,不過該外掛程式是免費的。這個外掛程式依賴 GEF,即 Graphical Editor Framework,這是另一個 Eclipse 外掛程式。GEF 是 Tools 子項目的一部分。要下載 GEF,請轉到 Eclipse Web 網站,選擇“downloads”,然後單擊“Tools PMC downloads page”連結。注意您需要下載 OMONDO 推薦的 GEF 版本(針對 OMONDO 1.0.2 的是 GEF 2.0 版)。
下載之後,外掛程式的安裝通常是通過解壓縮下載檔案,並將其內容複寫到 Eclipse 外掛程式目錄來完成的。在此例中,GEF 需要解壓縮到 Eclipse目錄(它將自動從該目錄進入外掛程式目錄)。為安全起見,您可能想將它解壓縮到某個臨時目錄,再相應地從那裡複製相關目錄。如果 Eclipse 正在運行,您需要停止它然後再重新啟動它,這樣它才能識別新安裝的外掛程式。
一旦 EclipseUML(以及 GEF)安裝完成,您就能夠像建立一個 Java 類檔案一樣建立一個類圖。在 Java 透視圖中,按右鍵 Package Explorer 中的“Hello”項目,然後從快顯功能表上選擇 New=>Other。New 對話方塊的左邊窗格中將會有一個用於 UML 的新選項。EclipseUML 的免費版本僅支援類圖,因此右側的惟一選項是 UML Class Diagram。請選擇 UML Class Diagram,然後為該類圖鍵入一個名稱,比如“Hello”:
圖 7. Class Diagram 編輯器
編輯器地區中將會出現一個圖形編輯器,它帶有用於繪製類圖的畫布。您可以通過兩種方式建立類圖:通過將 Java 檔案從 Package Explorer 拖放到類圖上,從而對現有代碼進行逆向工程;或者使用空白類圖上面工具列中可用的繪製工具。要實驗第一種方法,請建立一個名為 Person 的新類(使用 File=>New=>Class),然後賦予它下面列出的兩個私人屬性:
/** Person.java * @author david */public class Person {private String name;private Address address;/** * Returns the address. * @return Address */public Address getAddress() { return address;}/** * Returns the name. * @return String */public String getName() { return name;}/** * Sets the address. * @param address The address to set */public void setAddress(Address address) { this.address = address;}/** * Sets the name. * @param name The name to set */public void setName(String name) { this.name = name;}} |
僅鍵入針對 name 和 address 的行。getter 和 setter 方法是通過 Eclipse 自動產生的,即按右鍵原始碼,然後從快顯功能表上選擇 Source=>Generate Getter and Setter 。)
請儲存並關閉 Person.java Hello.ucd。
圖 8. Person 類圖
要從 UML 建立 Java 類,請單擊類圖視窗頂部工具列上的“New class”按鈕,即左起第三個按鈕,然後單擊類圖。當 New 類嚮導開啟時,請鍵入 Adress 作為類名稱,然後按 Finish。
您可以按右鍵類名稱並選擇 New=>Attribute,從而給類添加屬性。在 New 屬性對話方塊中,請輸入屬性名稱、類型和可見度。然後按右鍵類名稱並選擇 New=>Method 來添加方法。
當您更改類圖時,圖下面的 Source Editor 視窗將反映所做的更改。最後,您可以單擊 Association 按鈕(左起第五個),繪製一條從 Person 類指向 Address 類的線段,從而繪製這兩個類之間的關係圖。這樣會調出另外一個對話方塊,您可以在其中輸入關聯屬性(請參考 EclipseUML 協助,以瞭解關於必需資訊的更多內容)。完成後的圖應該類似如下:
圖 9. 關聯
這個 UML 外掛程式展示了 Eclipse 外掛程式的幾個典型特點。首先,它展示了工具之間的緊密整合。表面上絕對無法看出有多個組件在工作;與 Eclipse 平台和 JDT 的整合是無縫的。例如,當 Person 類被建立時,它顯示語法錯誤是因為它的一個屬性 Address 沒有定義。一旦 Address 類在 UML 圖中建立完成,這些組件就會分開顯示出來。
另一個特點是 EclipseUML 利用其他外掛程式提供的功能的能力——在此例中是 GEF 外掛程式,它提供用於開發可視化編輯器的工具。
還有另一個特點涉及 EclipseUML 外掛程式使用多層次功能來分發的方式。支援類圖的基本外掛程式是免費的,但是更成熟的版本要付費才能使用。