Eclipse平台入門之二:開發環境與執行個體
最後更新:2017-02-28
來源:互聯網
上載者:User
接著上一篇文章Eclipse平台入門之一:什麼是Eclipse,我們將開始介紹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 EclipseUMLRational XDE (代替 Rose) Together WebSphere Studio Edition 圖形Batik SVG Macromedia Flash Web 開發、HTML、XML Macromedia Dreamweaver XMLBuddy 應用伺服器整合Sysdeo Tomcat launcher要查看外掛程式的例子,以及查看它是如何與 Eclipse 整合的,請下載流行的 OMONDO EclipseUML,該外掛程式是免費的。這個外掛程式依賴 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 外掛程式使用多層次功能來分發的方式。支援類圖的基本外掛程式是免費的,但是更成熟的版本要付費才能使用。Eclipse 平台體繫結構Eclipse 平台是一個具有一組強大服務的架構,這些服務支援外掛程式,比如 JDT 和外掛程式開發環境(PDE)。它由幾個主要的部分構成:平台運行庫、工作區、工作台、團隊支援和協助。
圖 10. Eclipse 平台體繫結構
平台平台運行庫是核心,它在啟動時檢查已安裝了哪些外掛程式,並建立關於它們的註冊表資訊。為降低啟動時間和資源使用,它在實際需要任何外掛程式時才載入該外掛程式。除了核心外,其他每樣東西都是作為外掛程式來實現的。工作區 工作區是負責系統管理使用者資源的外掛程式。這包括使用者建立的項目、那些項目中的檔案,以及檔案變更和其他資源。工作區還負責通知其他外掛程式關於資源變更的資訊,比如檔案建立、刪除或更改。 工作台工作台為 Eclipse 提供使用者介面。它是使用標準視窗工具包(SWT)和一個更進階的 API(JFace)來構建的;SWT 是 Java 的 Swing/AWT GUI API 的非標準替代者,JFace 則建立在 SWT 基礎上,提供使用者介面組件。SWT 已被證明是 Eclipse 最具爭議的部分。SWT 比 Swing 或 SWT 更緊密地映射到底層作業系統的本機圖形功能,這不僅使得 SWT 更快速,而且使得 Java 程式具有更像本機應用程式的外觀和感覺。使用這個新的 GUI API可能會限制 Eclipse 工作台的可移植性,不過針對大多數流行作業系統的 SWT 移植版本已經可用。Eclipse 對 SWT 的使用只會影響 Eclipse 自身的可移植性——使用 Eclipse 構建的任何 Java 應用程式都不會受到影響,除非它們使用 SWT 而不是使用 Swing/AWT。團隊支援小組支援組件負責提供版本控制和組態管理支援。它根據需要添加視圖,以允許使用者與所使用的任何版本控制系統(如果有的話)互動。大多數外掛程式都不需要與團隊支援組件互動,除非它們提供版本控制服務。協助 協助組件具有與 Eclipse 平台本身相當的可擴充能力。與外掛程式向 Eclipse 添加功能相同,協助提供一個附加的導航結構,允許工具以 HTML 檔案的形式添加文檔。Eclipse 的前景圍繞 Eclipse 的開發正處於關鍵階段。主要軟體工具供應商都參與進來了,並且開放原始碼 Eclipse 外掛程式項目的數量正在與日俱增。可移植、可擴充、開放原始碼的架構並不是個新思想(您會想起 Emacs),但是由於它成熟、健壯和優雅的設計,Eclipse 帶來了全新的動力。IBM 價值 4000 萬美元的世界級軟體在開放原始碼領域的發布,給業界帶來了久違的震撼。
上一篇文章:Eclipse平台入門之一:什麼是Eclipse