程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 遷移到Eclipse: Eclipse對IntelliJ IDEAA評估開發指南

遷移到Eclipse: Eclipse對IntelliJ IDEAA評估開發指南

編輯:關於JAVA

Eclipse 是一個免費的、正日益流行起來的 Java 集成開發環境,最新版本的 Eclipse 中提供了很多特性,這些特性使它不但能與其他免費的 IDE 競爭,而且,即使是 IntelliJ IDEA 之類的專業商業軟件,Eclipse 也能與之競爭。本文將 Eclipse 與 IDEA 進行了簡單比較,為那些希望轉換到 Eclipse 或者只是想體驗一下 Eclipse 的程序員提供一份指南,讓他們了解 Eclipse 提供了哪些令人激動的特性。

Eclipse 與 IDEA 的比較

Eclipse 是一個雄心勃勃的項目。具體地說,它不僅僅是一個 Java IDE 工具,而且更是一種可擴充的開發平台,旨在能夠支持任何一種編程語言。然而,其參考實現 —— Java Development Toolkit (JDT) —— 只是一個 Java IDE,大部分人(尤其是 Java 程序員)談及 Eclipse 時,通常也是這樣認為。盡管您還為 Java 開發和 JDT 擔心,但 Eclipse 開放的、可擴充的特性足以促進 Eclipse 和 Eclipse 社區的大力發展。

Eclipse 3.0 和 IntelliJ IDEA 4 有很多重要的區別,而其中最顯著的區別就是價格:要想使用 IDEA, 您必須付費才能獲得許可證,而 Eclipse 卻是免費的。這一點究竟有多重要取決於您(或您的公司)的預算,不過很多專業的開發人員發現,IDEA 具有他們需要的所有特性,而且價格也很有吸引力。盡管如此,雖然 Eclipse 不具備 IDEA 的所有特性,但是圍繞 Eclipse 進行開發的社區非常活躍,他們已經以第三方插件的形式完善地提供了 Eclipse 所缺少的特性。

比價格和有多少特性更為重要的是如何使用 IDE 進行工作。IDE 對您有多大貢獻取決於許多因素,除了所提供的特性之外,這些因素還包括整體設計、穩定性和性能。在本文中,我們主要考慮 Eclipse 3.0 JDT 的基本特性,並將這些特性與 IDEA 中的可用特性進行比較。

特性

在編輯、運行和調試 Java 代碼方面,IDEA 和 Eclipse 的基本特性基本相同,不過有時操作方式可能稍有不同。除了這些基本的編程特性之外,Eclipse 和 IDEA 都提供了對更高級的 Java 開發工具的支持,例如 Ant、CVS、JUnit 和重構。(請參閱 參考資料中介紹 Eclipse 的重構(refactor)特性的一篇文章。) 通常,從另外一種 IDE 工具遷移到 Eclipse 上時,最困難的事情是學習如何在新環境中實現原來環境中的功能 —— 由於 Eclise 提供了如此豐富的特性,查找某個特性通常比較困難。幸運的是,在 Eclipse 的在線文檔中,有非常完整而且易用的幫助系統。

直至最近,與 Eclipse 相比,IDEA 最主要的優點之一就是它有一個集成的 GUI 編輯器。但現在這種情況正在發生變化:Eclipse 引入了 Visual Editor。Eclipse 的 GUI 編輯器是一個單獨的組件,但是,相對於 IDEA 的編輯器來說,它有一個非常重要的優點:其代碼和圖形視圖之間可以進行非常流暢的轉換(在一種模式下的變化幾乎立即就可以反映到另外一種模式中),不需要其他元數據或文件。

Eclipse 的 Visual Editor (VE) release 0.5 支持 AWT/Swing,現在,也可以在 Eclipse 2.1.x. 中使用該版本。用於 Eclipse 3.0 的版本 VE 1.0 即將發布。VE 1.0 將被用作一個獨立的軟件,可以從 Eclipse 的網站上下載它,它不但支持 AWT/Swing,而且支持 SWT。有關 VE 的更多信息,請參閱後面 參考資料中列出的文章“Building GUIs with the Eclipse Visual Editor”。

IDEA 的另外一個優點是它集成了 Web 開發的支持。然而,即使您需要這種功能,也依然可以使用 Eclipse。有幾個第三方的插件可以為 Eclipse 添加這種功能,比如 Lomboz 和 Sysdeo Tomcat 插件。請參閱 參考資料中的文章,它向您展示了如何下載、安裝和使用這些插件以及其他第三方插件。

整體設計和易於使用性

Eclipse 的新用戶對 Eclipse 的普遍抱怨就是它難以使用。這在很大程度上是因為 Eclipse 采用了一種獨特的方式來組織自己的用戶界面。具體地說,Eclipse 引入了 透視圖的概念,提供為執行特定任務而設計的環境,例如編碼、調試、使用源代碼控制系統等。經過一些引導和實踐之後(這也正是本文的目的),大部分用戶會發現,這個概念非常清晰,而且功能十分強大。

Eclipse 用戶界面的另外一個優點是,它廣泛采用了向導 —— 即一系列對話框,能夠引導您一步步執行特定任務的步驟,比如新建項目或類,連接到 CVS 倉庫等。當然,IDEA 也有向導,但是 Eclipse 的向導十分完整,提供了更多可能用到的選項。

穩定性和性能

從理論上來講,Eclipse 在性能方面應該更具優勢,因為它使用的是 SWT,SWT 使用了專用的構件 —— 操作系統的 UI 元素;而 IDEA 使用的是 Swing/AWT。然而,從實際情況來看,IntelliJ 在實現 IDEA 的用戶界面方面做了很多傑出的工作,在一台功能強大的機器上,二者性能間的差距是可以忽略的。同樣,Eclipse 和 IDEA 都非常穩定,用戶基本上不會碰到什麼問題。

證據源於實踐

最後,如果您想評估一下 Eclipse 是否適合您的開發,就需要將其安裝到一個測試硬盤中,親身體驗一下。這是評價 Eclipse 易用性以及它是否適合您的工作風格的惟一方式。下一節將簡要地介紹一下 Eclipse 的使用。如果您已經下載並安裝了 Eclipse,那麼請繼續閱讀本文。

開始體驗 Eclipse

在開始體驗 Eclipse 之前,有必要先介紹一些用來描述 Eclipse 用戶界面的術語。最高層是 Eclipse 應用程序窗口。按照 Eclipse 的術語來講,這個窗口稱為 工作台(workbench),它包含一個主菜單、一些工具按鈕以及大量不同的窗格。與 IDEA 一樣,每個窗格都有特定的用途,例如顯示資源(包、源代碼、編譯腳本等),顯示待做事宜,以及在運行程序時顯示終端輸出等。這些窗格被稱為 視圖(view)。

除了視圖之外,每個透視圖通常都有一個 編輯器(editor)窗格。因為編輯器提供了創建並編輯資源(例如數據源、文本和映像文件)的主要方法,所以,在 Eclipse 工作台中,編輯器是最基本的窗格,隨著在編輯器中選擇的文件的變化,其他視圖中的內容都會相應發生變化。例如,如果您正在編輯一個 Java 文件,那麼大綱(Outline)視圖就會顯示您已選擇的 Java 文件中的類的結構。

在執行不同的任務時,例如編碼、調試或將修改後的代碼與集中式代碼存儲庫中的代碼進行合並,可以專門為這項任務,對選定的視圖進行排列。這種針對任務的特殊窗口排列就稱為 透視圖(perspective)。

當您第一次啟動 Eclipse 時,會看到一個歡迎畫面。這個畫面中有一些到 Eclipse 的概述、指南和其他有用信息的鏈接。現在,單擊主菜單下面的 Welcome 選項卡中的“X”,禁止再次顯示該畫面。(以後可以使用 Help 菜單返回這個歡迎畫面)。現在,Eclipse 應該顯示默認的資源透視圖(Resource perspective),如圖 1 所示。

圖 1. 資源透視圖

透視圖有一項很有用的功能:它可以防止您的屏幕混亂不堪。例如,如果您沒有正在調試程序,那麼沒有必要查看調試需要的工具按鈕和菜單。這樣可以更容易找到與當前任務有關的工具按鈕和菜單選項。

在 Eclipse 中打開 IDEA 模塊

如果您正從 IDEA 遷移到 Eclipse 上,那麼您可能想打開一些 IDEA 模塊(module)。要實現這項功能,需要為該模塊創建一個 Eclipse 項目,並指定其目錄 —— 注意,在 Eclipse 中,術語 project相當於 IDEA 的模塊的概念。

假設您已經使用 IDEA 創建了一個項目 Zoo,它位於目錄C:\Documents and Settings\user\IdeaProjects\Zoo中。再假設源代碼文件位於子目錄 src 中,類文件位於 classes 中。(如果您希望繼續按照本文的介紹進行操作,可以使用 參考資料中的鏈接下載原始的 IDEA 項目。) 然後,按照以下方式啟動 Eclipse:

選擇主菜單中的 File > New > Project,然後打開 New Project 向導。

確保選中了 Java Project(請參見下面的圖 2),然後單擊 Next。

圖 2. New Project 向導

在 Project name 中輸入名字,例如 Zoo 。

單擊 Location 下面的 Create project at external location。

找到(或輸入)IDEA 項目的目錄。請參見圖 3。

圖 3. 選擇文件夾

單擊 OK。注意,在選擇 external location 之後,用來選擇項目布局的那些選項都變灰了。這是因為 Eclipse 會自動對該項目進行分析,並確定其布局 —— 在這種情況中,可以將 src 作為源代碼目錄(Eclipse 更傾向於將其稱為文件夾),將 classes 作為類文件的文件夾。

在關閉 Browse Folder 對話框之後,會出現 Create a Java Project 對話框,現在,可以單擊 Next或 Finish繼續創建項目了。單擊 Next 可以設置其他選項,例如將其他項目或庫添加到 class path 中。假設 Zoo 是一個單獨的項目,就不需要設置這些選項。只需要簡單地:

單擊 Finish。

Eclipse 會提示您該項目與 Java 透視圖是相關聯的,並詢問您是否希望切換到這個透視圖上。單擊 Remember my decision復選框(這樣下次創建 Java 項目時就不會再詢問您該問題了),然後單擊 OK。

現在您會發現自己已經在 Java 透視圖中了,而且 Package Explorer 視圖中列出了 Zoo 項目。要浏覽該項目,可以單擊加號展開該項目,然後單擊 src 文件夾定位您的源文件。

在源代碼中放入一個錯誤很有用,這樣就可以比較 IDEA 和 Eclipse 如何標記錯誤。例如,打開 Snake.java ,並取消對 speak() 方法的注釋(與在 IDEA 中類似,您可以通過突出顯示該方法的代碼,然後按下 Ctrl-/. 鍵,取消對這段代碼的注釋)。這樣會導致一個錯誤,Eclipse 會在這段代碼的左邊顯示一個紅色的“X”(表示此處有錯),邊上還會顯示一個燈泡(表示 Eclipse 建議修正該錯誤)。

如果將鼠標放到這個燈泡上邊,會出現一條消息,提示您 Snake 類沒有實現在 Animal 超類中聲明的抽象方法 speak() 。圖 4 顯示了這段代碼在 IDEA 和 Eclipse 編輯器中的情況。正如您可以看到的一樣,二者非常類似。

圖 4. IDEA 和 Eclipse 編輯器的比較

使用 Eclipse 編輯源代碼

Eclipse 在編輯代碼方面提供了很多與 IDEA 相同的特性,包括幾種自動代碼補足功能。例如,如果您輸入一個 Java 關鍵字、類名或方法名,然後按下 Ctrl-Space 鍵,Eclipse 就會提示一個可選項列表,您可以從中選擇適當的項,將其插入代碼。

Eclipse 還有一種稱為 QuickFix 的特性,與 IDEA 的 Intention Actions 特性對應。正如您在上一個例子中已經看到的一樣, 如果 Eclipse 對修正代碼提出了建議,左邊就會顯示一個燈泡。您可以單擊這個燈泡,或者選擇包含錯誤的元素(這段代碼以紅色曲線形式的下劃線標出,例如上例中的 Snake ),然後按下 Ctrl-1 來激活 QuickFix。在上面這種缺少該方法的情況下,Eclipse 會為您提供三個選項:Add unimplemented methods、Make type 'Snake' abstract 或 Rename in file。當然,現在我們想要的是添加未實現的方法(現在暫時忽略已經取消注釋的代碼)。

QuickFix 提供的最後一個選項是 Rename in file,該選項看起來似乎是錯誤的,這是因為這個提示實際上與修正缺少方法的問題毫無關聯。相反,這是 Eclipse 的一個很有趣的特性,它允許您一次修改一個文件中某個標識符的所有實例。要體驗這項功能,請打開 Animal.java 文件,單擊變量 lion ,按下 Ctrl-1鍵,然後選擇 Rename in file。您會注意到兩次出現該變量名的地方都被一個矩形框封閉了起來;當您輸入一個新名字時,例如 leona ,這兩個地方都會發生改變。

當您在 Eclipse 中輸入代碼時,可能會注意到,有時光標前會出現一個綠色的條。例如,返回 Snake 類中新的 speak() 方法,輸入 System.out.println( 。Eclipse 會自動添加另外半邊的圓括號(這與 IDEA 相同),在圓括號後面就會出現一個綠色的條。(請參見圖 5。)這個綠色的條被稱為插入點。

圖 5. 按下 tab 鍵,將光標移動到插入點(就是那個綠條)處

然後在圓括號內輸入左引號。同樣, Eclipse 又會幫您添加右括號,後面又是一個綠色的條。(此時第一個綠色的條消失了。)輸入一些“蛇語”,例如 "Sssss",然後按下 Tab 鍵。此時光標又移動到了引號之外的插入點處了。再按一次 Tab 鍵,移動到行尾,輸入分號。

正如您可以看到的一樣,這個例子並不能減少敲擊鍵盤的次數,因為如果不想按 Tab 鍵,也可以用右箭頭將光標移動到相同的地方;然而,一旦您習慣這種方式之後,就會發現這非常方便。在某些情況下,特別是在使用代碼模板時,插入點尤其有用。例如,如果您使用一個帶有 for 循環的模板,那麼使用 Tab 和 Shift-Tab 鍵就可以在循環的不同部分(循環變量、測試表達式、增量表達式和循環體)之間來回移動。

編輯器分屏

Eclipse 有一個不十分明顯的特性:它可以將編輯屏幕進行分屏。分屏的方法如下:在編輯器的頂部單擊文件選項卡,然後將其拖動到編輯器面板的邊緣。例如,假設現在打開了文件 Animal 和 Snake。

點擊 Snake.java 選項卡,並將其拖動到面板底部。

這時會出現一個黑色箭頭,指出您已經選擇了一個有效的浮動位置。請參見下面的圖 6。

釋放鼠標按鈕,將編輯器水平分隔為兩個屏幕,下面的面板中顯示了 Snake 文件。

要返回單文件視圖,需要單擊 Snake 選項卡,並將其拖回 Animal 選項卡邊上的位置。

圖 6. 將 Snake 選項卡拖動到底部,將編輯器面板分屏

運行並調試程序

Eclipse 采用的是增量編譯器,因此通常不必顯式地編譯 Java 文件;在保存 Java 文件時,編譯過的類文件也會自動保存。要運行一個程序,最簡單的辦法是在包浏覽器(Package Explore)中包含 main() 方法的文件,然後選擇 Eclipse 主菜單中的 Run > Run As > Java Application。(注意這個菜單與 Run > Run... 菜單項不同,後者我們很快就會看到。)如果您選擇 Animal.java 並運行它,就會在編輯器下邊的終端(Console)視圖中產生輸出,如圖 7 中所示。

圖 7. 在終端視圖中 Java 程序的輸出結果

在調試器中運行簡單程序的方法與此類似。舉例來說,首先在 main() 方法中雙擊調用 lion.speak() 的地方,設置一個斷點。如果代碼調試不是很重要,那麼可以設置一個條件斷點,條件斷點是代碼執行在某個特定表達式(例如 i==2 )為真時停止的斷點,或者滿足特定的次數後停止執行的斷點,可以通過在斷點處右擊鼠標,選擇上下文菜單中的 Breakpoint properties來設置這類斷點。

要開始調試,需要選擇主菜單中的 Run > Debug As > Java Application。由於 Eclipse 有一個比 Java 透視圖更適合於調試的 Debug 透視圖,因此 Eclipse 會詢問您是否要切換到這個透視圖。選中 Remember my decision復選框,然後按下 Yes。請參見下面的圖 8。

圖 8. 使用 Debug 透視圖調試程序

Debug 透視圖中的大部分視圖或多或少都與 IDEA 窗口中的有些類似,不過它們的名稱和排列可能稍有不同。例如,注意,Debug 視圖(請不要與 Debug 透視圖混淆)顯示了調用棧的情況;這些信息實際上包括了您熟悉的 IDEA 框架和線程的內容。Variables 視圖顯示了當前程序變量的狀態,Console 視圖顯示了程序的輸出結果。

您還會注意到控制程序執行的工具按鈕(Step over,Step into 等)都位於 Debug 視圖的工具欄中。由於這些控制按鈕以及調用棧都在一個工具欄中,因此如果您要調試多個程序(或者一個程序的多個實例),或者調試多線程的程序,那麼只需要在調用棧中單擊相應的按鈕,就可以隨意選擇要調試的程序或線程。如果願意,您可以再次啟動樣例程序,但並不結束它的第一個實例,來體驗一下這些功能。

有時,您可能並不想(或不能)通過簡單地選擇 Run > Run As > Java Application菜單項來運行程序。如果需要向程序或運行程序的底層的虛擬機器傳遞參數,您可能需要使用 Run > Run...菜單選項。這樣會引出一個對話框,您可以用這個對話框來設置以上選項以及其他一些選項。請參見圖 9。

圖 9. 啟動 Java 程序並設置參數

定制 Eclipse

IDEA 與 Eclipse 都提供了一種很好的特性,那就是都可以使用鍵盤快捷鍵來執行特定的命令。在 IDEA 和 Eclipse 中,有些快捷鍵是相同的,例如剪切和拷貝命令的快捷鍵,但是大部分快捷鍵都是不相同的。當您決定從頭開始學習 Eclipse 的快捷鍵時,如果您已經習慣了 IDEA 的快捷鍵,那麼您依然有機會,您可以定制 Eclipse 的快捷鍵(或 鍵盤綁定組合),以符合您原來的習慣。如果要對所有的快捷鍵進行定制,那麼這將是非常繁瑣而無趣的事(正如您將看到的一樣,這樣做最終是不切實際的),但是可以進行適當的折衷,設置並添加您經常使用的快捷鍵,在以後的時間裡慢慢學習使用其他快捷鍵。

例如,如果您與許多偏愛使用 IDE 功能的程序員一樣,那麼您可能喜歡快速輸入代碼,而不管其風格,只是偶爾使用 IDE 的 format 命令美化代碼。在 IDEA 中,您可以使用 Ctrl-Alt-L 快捷鍵實現這項功能,而在 Eclipse 中,使用的快捷鍵則是 Ctrl-Shift-F。如果您以這種方式格式化代碼已經成為了一種自然習慣,那麼就會發現修改快捷鍵將比自己重新學習使用新的快捷鍵更加容易。在 Eclipse 中,可以按照以下步驟將 Ctrl-Alt-L 設置為格式化代碼的快捷鍵:

從主菜單中選擇 Window > Preferences。

如果需要,展開 Workbench 選項,並單擊 Keys。

在 Command 字段中,選擇 Category 下面的 Source,並選擇 Name 下面的 Format。

在 Key Sequence 字段中,單擊 Name 框,然後按下要使用的快捷鍵 Ctrl-Alt-L。

在標有 "When" 的復選框中,選擇 Editing Java Source。

單擊 Add按鈕(請參見圖 10),然後單擊 OK按鈕。

圖 10. 添加格式化源代碼的快捷鍵

正如上面介紹的,我們不可能將 Eclipse 修改得完全像 IDEA 一樣,因為 Eclipse 和 IDEA 的命令集並不相同。也就是說,盡管 Eclipse 和 IDEA 就有很多相似的特性,但是它們的實現通常都是不同的。具體來說,在一種環境中的一個命令可能對應另外一種環境中的兩個或多個命令。例如, Eclipse 使用一個命令就可以實現查找和替換文本的工作,而 IDEA 則對這些功能中的每一項采用了不同的命令。

結束語

Eclipse 3.0 和 IntelliJ IDEA 4 都有非常豐富的特性,這兩種 Java IDE 都提供了語法檢查、代碼提示以及為編碼自動生成代碼等方面的功能。另外,這兩種工具都提供了對重構、Ant、單元測試和 CVS 的支持。很快,使用 AWT/Swing 或 SWT 來構建 GUI 的Eclipse Visual Editor 1.0 就會發布。但是這兩種工具之間也存在一些重要的區別。

重要的區別之一是 Eclipse 用戶界面的設計方式使用了透視圖的概念,執行一項特定的任務可以使用一組視圖、編輯器以及其他一些 UI 元素。這樣可以簡化任務的實現,因為手頭隨時都有適用的工具(而且只能使用這些適用的工具)。

另外一個重要的區別是 Eclipse 是一個開源項目。這種開源特性已經吸引了很多開發者社區為 Eclipse 開發插件,其中既有免費的插件,也有商業插件。如果您需要某種特性 —— 面向方面的開發支持,或者內嵌的 MP3 播放器,那麼您很有可能會找到一款擴充 Eclipse 的免費插件,來支持這種特性。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved