程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 面向Visual Studio用戶的Eclipse簡介

面向Visual Studio用戶的Eclipse簡介

編輯:關於JAVA

所有集成開發環境 (IDE) 都十分相似,因為它們都是為同一目的而構建的,但是它們也有差異。這些差異中有些可以歸因於應用域不同,但是其余差異則因 IDE 設計而產生。

很明顯,Microsoft Visual Studio 與 Eclipse 是不同的:Java™ 編程語言不同於 C/C++/.NET,並且 Java 曾經是 Eclipse 所支持的第一種語言。兩者不同還因為 Eclipse 旨在成為 “可以實現任何功能而不是實現具體某項功能(everything and nothing in particular)” 的 IDE,引入了更多一般功能和可自定義功能。Eclipse 還可用於更多的操作系統中。但是,我們的目的不是要列舉出 Eclipse 與 Visual Studio 之間的所有 差異。

本文不是要詳細討論 IDE 設計,而是要說明這些 IDE 之間的主要差異。本文適用於已經使用了 Visual Studio 一段時間並且要開始使用 Eclipse 的所有開發人員。本文不教您如何在 Eclipse 中進行 Java 編程,也不關注 Java 特有功能,而是討論兩者總體上的差異。

Eclipse 工作區

工作區目錄

Eclipse 工作區是包含 .metadata 特殊子目錄的文件系統中的一個目錄。.metadata 目錄包含工作區的所有私有信息,例如設置、緩存等。通常,您不必修改 .metadata 目錄中的任何文件。工作區目錄也是 Eclipse 中新項目的默認位置。

一般而言,Eclipse 工作區的功用與 Visual Studio 解決方案相同:組織層次結構中的頂級項目、文件夾和文件。但是,有一些主要差異。Visual Studio 解決方案僅僅列出它所包含的項目及其依賴關系、配置、版本控制信息等。

Eclipse 工作區所實現的功能不只包含上述這些。它將管理大多數非項目信息,例如全局首選項、窗口布局以及搜索和浏覽歷史記錄。Eclipse 啟動時必須同時啟動一個工作區,並且您不能按照關閉 Visual Studio 解決方案的方法來關閉工作區。雖然可以在 Eclipse 中切換工作區,但是許多用戶都使用包含自己所有項目的一個工作區。

項目結構

Eclipse 項目結構的起源

項目結構與其文件系統布局之間的嚴格對應關系可能是受 Java 包與其在文件系統中的布局之間的強制對應關系影響。在 Java 語言中,類 p1.p2.p3.Class1 必須位於目錄 p1/p2/p3 中。

Visual Studio 語言(C/C++/C#,甚至是 J#)沒有要求這樣的目錄結構。因此,Visual Studio 中的項目結構與文件系統布局之間的對應關系就沒有那麼嚴格。

Eclipse 項目與 Visual Studio 項目的差異在於與底層文件系統的交互方法上。在 Visual Studio 中,項目與它在文件系統中的布局的關聯並不緊密:您可以將 c:\temp\ 中的文件添加到位於 d:\work 的項目中,並且 Visual Studio 將記錄新文件的引用位置並像任何其他文件一樣打開它。文件夾(如 “頭文件”)不與文件系統文件夾(在內部,此類文件夾被稱為過濾器)對應。

在 Eclipse 中,項目元素的結構必須與它們在底層文件系統中的布局相對應。例如,如果 Eclipse 項目 HelloWorld(參見圖 1)位於 c:\eclipse\workspace\HelloWorld,則 README.TXT 位於 c:\eclipse\workspace\HelloWorld\src\README.TXT。

圖 1. 簡單的 HelloWorld 項目

Eclipse 還需要與項目目錄下的文件同步。如果刪除 Eclipse 中的文件或文件夾,那麼被刪除的文件或文件夾也將從文件系統中消失。但是,當您使用 Windows® 資源管理器添加或刪除同一個文件時,Eclipse 中的相關資源將不同步,這可能干擾 Eclipse 的某些操作。在這種情況下,您應當在項目的右鍵菜單中選擇 Refresh,手動刷新項目。您可以通過在 Eclipse 首選項中選擇 Refresh automatically 選項,告訴 Eclipse 與文件系統進行自動同步。

把資源鏈接到 Eclipse 中

嚴格的工作區結構是執行此操作的基礎。雖然項目可以存儲在工作區目錄以外,但是早期的 Eclipse 版本甚至都不能打開一個外部文件(現在,可以選擇 File > Open File)。UNIX® 用戶十分幸運,因為他們可以使用符號鏈接來模擬靈活的項目結構,但是 Windows 用戶沒有這樣的權限。現在,Eclipse 在 IDE 級別支持鏈接資源。

Eclipse 中的鏈接資源的作用與 UNIX 符號鏈接非常相似。例如,要將大型測試輸入文件添加到項目中而不從其原始位置復制,請選擇 File > New > File,並在打開的窗口中單擊 Advanced(參見圖 2)。添加後,系統將給鏈接資源的圖標上加一個小箭頭(參見圖 3)。

圖 2. 添加鏈接文件

圖 3. HelloWorld 項目中的鏈接文件

提示:使用鏈接資源提高性能

使用鏈接文件夾作為 Java 輸出文件夾

要使用鏈接文件夾作為已有項目的 Java 輸出文件夾,首先需要確保項目為源文件和 .class 文件使用單獨的文件夾(如果沒有使用單獨的文件夾,則需要把源文件移到單獨的文件夾中)。然後,打開 Navigator 視圖,禁用自動構建,刪除舊輸出文件夾,創建一個同名的新鏈接文件夾,重新啟用自動構建並選擇 Project > Clean 重新構建項目。

當您在處理駐留在遠程位置(例如文件服務器或 ClearCase 動態視圖)的大型項目時,鏈接文件夾會非常有用。雖然源文件可以受益於適當的備份和通過其他方式執行的管理,但是沒有足夠的理由把生成的 .class 文件存儲到這樣的遠程存儲設備中。在擁有幾百個源文件的項目中,如果把生成的文件存儲到本機上,可以極大地提高許多操作的性能。

在 Visual Studio C++ 項目中,您可以通過將中間目錄設為本地位置來提高構建性能。在 Eclipse 中,您可以通過使用指向本機目錄的鏈接輸出文件夾來實現同樣的效果。

有關其他信息,包括如何使用變量來定義依賴於平台的鏈接目標(例如使用 UNIX 中的臨時目錄 /tmp,Windows 中的臨時目錄 c:\temp),請參閱 參考資料。

用工作組減少混亂

正如前面提到的,許多開發人員都把他們的所有項目加載到一個 Eclipse 工作區中。這樣做很方便,但是有時可能會帶來太多混亂。除了關閉不必要的項目以外,您還可以定義工作組:元素組(項目、文件夾、類等)。Eclipse 可以在各種視圖(例如 Package Explorer)和操作(如搜索)中使用工作組。

本地歷史記錄

Eclipse 最棒的一項功能 —— 並且是 Visual Studio 所沒有的一項功能 —— 是本地歷史記錄。每次您更改文件、類或方法,Eclipse 都會在其本地歷史記錄中記錄更改。然後,您可以將現在的文件與幾分鐘前、幾小時前或幾天前的文件相比較。如果文件被刪除,則從其父目錄節點的上下文菜單中調用 Restore from Local History 可以找回該文件。

本地歷史記錄不能替代版本控制。它更像是一個擁有歷史記錄天數和分配存儲能力的可配置限制的超級撤消引擎。

構建項目

與 Visual Studio 方法下的項目擁有單個項目類型 (C++/C#/J#) 相反,Eclipse 項目可以沒有、有一個或有多個本性。例如,Eclipse 中的 Java 項目有 Java 本性,而動態 Web 項目有 Java 和(隱含的)Web 本性。項目本性將定義一組生成器,這些生成器將在構建項目時運行。例如,Java 本性將添加一個把 Java 源文件編譯成 .class 文件的生成器,而 Web 本性將添加一個驗證 XML 和 HTML 文件的生成器。

自動構建項目

構建非 Java 項目

自動構建對於 Java 項目十分理想,因為內部的增量編譯程序(Eclipse 不使用 javac)可以快速處理小型代碼更改。雖然構建是在後台運行,但是對於這種項目類型(例如 CDT 項目),小更新也會觸發冗長的編譯過程,您可能寧願禁用自動構建 (Project > Build Automatically)。然後,您可以手動運行構建 (Project > Build All) 或讓 Eclipse 在運行應用程序之前執行構建。

當開發人員第一次使用 Eclipse 時,許多人都會去尋找 Build 命令。但是令人驚訝的是,他們要麼找不到這條命令,要麼不能使用這條命令。那是因為不同於 Visual Studio 和其他一些 IDE,Eclipse 有一項自動構建 功能。在 Java 項目中,Java 文件每修改一次,Eclipse 就將編譯一次相關文件,包括未直接受更改影響的文件。自動構建是一種可以快速發現影響其他文件的編譯錯誤的優秀方法。許多操作(例如 Java 搜索)依賴於這些構建結果。

自定義構建

通常 —— 主要針對 C++ 項目 —— Visual Studio 項目將使用自定義構建步驟來執行非標准構建任務。自定義構建命令都是 Visual Studio 項目中的普通命令行指令。另一方面,Eclipse 可以運行獨立程序和 Ant 構建腳本。例如,只要項目被重新構建,您就可以使用 Ant 腳本構建和部署包含項目的類的 Java Archive (JAR) 文件。附含了 Ant 的 build.xml 文件的編輯器。

您可以在項目屬性窗口的 Builders 頁面中配置自定義項目生成器,並且可以選擇 Run > External Tools 來定義和運行全局腳本。

運行和調試

語言和入口點

Visual Studio 語言 (C++/C#) 在一個可執行文件中只能有一個入口點,這是在鏈接時確定的。Java 編程語言允許在編譯時有多個入口點(main 方法)。入口點是在啟動程序時在命令行中確定的。

Eclipse 不像 Visual Studio 一樣有啟動項目的概念。此差異可以歸因於語言差異,但是 Visual Studio 通過為每個項目生成一個可執行文件並只允許不同的項目配置使用不同的啟動參數(例如命令行參數),進一步限制了它的用戶。在大多數情況下,為了使用不同的命令行參數管理多個配置是一種不好的方法。

Eclipse 使用啟動配置 來收集用於啟動應用程序的參數。對於 Java 程序,主類名和命令行參數都是這類參數。項目中有 main() 方法的類都可以有單獨的啟動配置。當您使用 Run > Run As 命令啟動含有新主類的應用程序時,將自動創建一個新配置。您還可以使用 Run 窗口 (Run > Run) 創建和刪除啟動配置。

默認情況下,啟動配置保存在本地工作區中並且不是項目的一部分,這意味著它們不被共享給其他團隊成員。要在項目中保存啟動配置,請使用 Run 窗口的 Common 選項卡,如下所示:

圖 4. 更改啟動配置的位置

Debug 透視圖

Eclipse 沒有調試模式 —— 只有能夠來回切換的 Debug 透視圖。主 Debug 視圖將列出所有正在運行或調試的程序,並允許您同時調試多個 prograDebuggingms,這一點在 Visual Studio 中完成起來要困難一些。要了解關於 Eclipse 必須提供的調試功能的更多信息,請閱讀 “用 Eclipse Platform 進行調試”。

Eclipse 插件

除了是一個優秀的免費開源 Java IDE 以外,Eclipse 最重要的特性 —— 在它所獲得的成功中占據了較大的位置 —— 是開放的可擴展架構。大多數 Eclipse 功能都可以擴展或接受插件。實際上,許多 Eclipse 功能都使用可以通用的同一個可擴展架構。

Eclipse 使用的業務友好的開源許可證鼓勵開發商業插件和開源插件。Eclipse Plugin Central 的官方插件市場中列出 800 多個插件也就不足為奇了。

除了集成到現有 Eclipse 安裝中的插件以外,一些公司已經在 Eclipse 之上構建了功能全面的 IDE,包括所有 IBM® Rational® 工具、CodeGear JBuilder 2007 和 Genuitec MyEclipse。通常,這些產品都提供用於建模、Web 開發和可視化設計的工具。

其他 Eclipse 項目

基本 Eclipse 軟件開發包 (SDK) 只包含 Java IDE。用於其他語言(C/C++、PHP)、模型工具和其他擴展的工具包正在龐大的 Eclipse 下開發,並且可以作為 Eclipse 插件來安裝。

Update Manager

只要您第一次下載 Eclipse 或者下載 Eclipse 的升級程序,就會獲得一個釋放到空目錄中的普通壓縮文件,而沒有安裝程序執行任何配置或創建桌面快捷方式。但是,對於插件,Eclipse 有 Update Manager (Help > Software Updates),該工具將管理安裝和更新。它還可以啟用和禁用插件,類似於 Visual Studio 的 Add-in Manager 的功能。

Update Manager 將從更新站點(本地或通過 Web)安裝或更新插件。要安裝新插件,您必須在供應商的 Web 站點中找到更新站點 URL 並將其手動輸入到 Update Manager 窗口中(一些供應商已經構建了與 Update Manager 在後台進行交互的全功能安裝程序)。

在較小的范圍內,Eclipse 支持把插件手動復制到相應的目錄中來安裝插件。不建議采用這種方法,並且它會導致 Eclipse 配置中出現不一致。

當您需要幫助時

如果您是 Eclipse 新用戶,則可能會有一些問題要問。並且在使用它一段時間以後,您可能會發現一堆 bug 或者可能希望建議增加新功能。此部分通盤考慮了各種支持選項。

基本故障診斷

每個人都知道 IDE 有時候會出錯。使用 Visual Studio,您可以在命令提示符處鍵入 devenv /setup 來把一切重設回出廠狀態。Eclipse 提供了一個類似的命令行開關。在命令行中運行 eclipse.exe -clean 將重新構建已安裝插件的大部分信息。如果您已經安裝了一個新插件而它不顯示,則可能需要使用 -clean 選項。

當 Eclipse 出錯時,您可能還需要檢查錯誤日志。要打開 Error Log 視圖,請選擇 Window > Show View > Error Log。原始日志位於 <workspace dir>/.metadata/.log 文件中。

新聞組

如果使用過 Microsoft 產品,您知道可以在 Microsoft Developer Network (MSDN) 論壇和新聞組中獲得幫助。Eclipse 社區有自己的新聞組,並且社區中有許多 Eclipse 定期投稿者都可以幫助您走出困境。

報告 bug 和建議開發新功能

不同於 Microsoft Connect Web 站點中旨在提供客戶支持的 Microsoft 反饋功能,Eclipse Bugs 是 Eclipse 開發人員所使用的實際 bug 跟蹤系統。使用 Eclipse Bugs,您不但可以搜索、報告及給 bug 投票,而且可以將您自己添加到其他人報告的 bug 的抄送名單中、查看指定了誰來解決問題、了解在哪個版本中 bug 應當會被更正等等。您可以使用同一個界面發布功能請求。

高級支持

除了具有開源精神的 Eclipse Bugs 和社區幫助以外,一些公司需要為自己的開發團隊提供商業級支持。如果您購買了構建在 Eclipse 之上的產品,則其供應商應當提供產品(包括底層 Eclipse 組件在內)支持。如果使用基本的 Eclipse SDK,則可以查看擁有世界級 24x7x365 支持計劃的 IBM Rational Elite Support for Eclipse 項目。

結束語

我們已經討論了 Eclipse 如何處理一些常見的 IDE 原理和任務。一方面使用工作區集中的方法和項目結構,另一方面擁有 UI 設計和啟動配置的極大靈活性,使 Eclipse 的 IDE 設計獨一無二。並且開放的可擴展性架構使 Eclipse 成為適用於各種第三方插件和產品的平台。

如果您尚未開始使用 Eclipse,請閱讀 “Eclipse for Visual Studio developers” 教程,這篇文章給出了在 Eclipse 中進行 Java 開發的詳細介紹。但是,Eclipse 不全都使用 Java 編程語言。要獲得其他 Eclipse 項目(例如 C++ IDE),請查閱 Callisto 和 Europa 發行版。然後訪問 Eclipse Plugin Central 並下載一些流行的 Eclipse 插件。

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