本文將介紹 Java™ Development Tools(JDT),演示一些常用功能並說明如何自定義這些常用功能。還將討論 Eclipse 集成開發環 境(IDE)不同於其他環境的概念和功能,或者 JDT 新用戶不容易發現的功能。如果您剛開始使用 Eclipse V3.4,請參閱第1部分。
JDT 是什麼?
Eclipse 與 Java 開發是同義語。但是,對於大多數 Eclipse 新手來說,Eclipse 與 Java 技術之間的關系可能 並不十分清晰。
Eclipse 是用 Java 編程語言編寫的骨架平台。在 IDE 之上編寫的插件(例如 Mylar 和 Findbugs)將提供其功能, 並且 Java 語言允許 Eclipse 像 Java IDE 一樣運行。可能由於 JDT 是 Eclipse 下載默認附帶的,因此當開發人員說他們使用 Eclipse 進 行 Java 開發時,他們實際上指的是使用 JDT,這一點可能不會讓人立刻明白。
分析 Java 項目
圖 1. 在 Package Explorer 中查看到的典型 Java 項目
Java 項目由以下元素組成:
src 文件夾
此文件夾包含應用程序的 實際源代碼。默認情況下,當您創建一個新 Java 項目時,Eclipse 將創建保存所有源代碼的 src 文件夾,但是可以添加任意一個文件夾作為 源代碼文件夾。例如,許多人喜歡用 tests 文件夾保存創建的所有測試用例。要將 tests 文件夾添加到項目中,請執行以下操作:
1 、右鍵單擊項目,然後單擊 New > Folder。
2、鍵入文件夾的名稱(在本例中為 tests)並單擊 OK。
3、右鍵單擊 tests 文件夾,然後單擊 Build Path > Use as Source Folder。
輸出文件夾
此文件夾包含通過源代碼生成的 .class 文件夾。默認情況下,Eclipse 將創建 bin 文件夾來保存這些內容。
引用庫
這些是當前項目引用的庫或工作空間中的其他 Java 項目。當 Eclipse 構建或運行 Java 項目時,這些內容將被添加到構建路徑和 CLASSPATH 中。
設置構建路徑
許多時候,Java 項目都使用位於計算機中的其他一些 Java 存檔(JAR)或者同一個工作空間中的其他一些項目中的類。要使用這些類,必 須把相應的項目/JAR 添加到當前項目的構建路徑中。否則,Eclipse 將顯示項目中的編譯錯誤。要修改項目的構建路徑,請執行以下操作:
1、右鍵單擊 Package Explorer 中的項目並單擊 Settings。
2、在顯示的窗口中,選擇 Java Build Path。
3、要將項目添加到構建路徑所在的工作空間中,單擊 Projects 選項卡,然後單擊 Add。
4、在構建路徑中選擇項目,然後單擊 OK。
要將 JAR 添加到項目中,請執行以下操作:
1、單擊 Libraries 選項卡。
圖 2. 修改構建路徑
2、單擊 Add external JARs,然後選擇需要添加的 JAR。
自定義編譯器設置
Eclipse 允許自定義內置 Java 編譯器的設置。Eclipse 將使用此編譯器構建項目。要自定義項目的編譯器設置,請執行以下操作:
1、右鍵單擊 Package Explorer 中的項目並單擊 Settings。
2、在顯示的窗口中,選擇 Java Compiler。
圖 3. 自定義 Java 編譯器設置
3、在 Java 編譯器的這個首選項頁面和其余首選項頁面中:
選擇 Enable project specific settings,因此對編譯器設置所做的更改僅應用於此項目。
單擊 Configure Workspace Settings 鏈接把更改應用於工作空間的所有項目中。
4、在 Compiler compliance level 菜單中,選擇需要編譯源代碼的 Java 版本。例如,如果使用的是 Java V1.5 功能,您應當選擇該選 項。
5、展開 Java Compiler 樹,然後選擇 Errors/Warnings.在這裡,您可以將 Eclipse 設為標記代碼中的潛在錯誤。如果內容非常苛刻,則 可以告訴 Eclipse 忽略它(例如,Undocumented Empty Block),或者可以將項內容設為根據問題的嚴重程度標記警報或錯誤。
圖 4. 自定義 Java 編譯器錯誤和警報
注:建議將 Potential programming Problems 和 Deprecated and Restricted API 下的項至少設為 Warning 級別。您可能需要忽略 Potential programming Problems 下的 Serializable class without serialVersionUID 項,除非您打算同步許多對象。
6、在展開的 Java Compiler 樹中選擇 Task Tags.任務標記允許您在代碼注釋中給您自己或其他人留下說明。例如,您可以有這樣一 行://TODO this is a bug. details at http://bugs.mycompany.com/3434/.您可以在 Tasks 視圖看到這些注釋本身。單擊 Tasks 視圖中的 任意一個注釋將跳到它在源代碼中的位置。默認情況下,Eclipse 提供了三類任務標記:FIXME、TODO 和 XXX.只需在 Java Compiler 樹中選 擇 Task Tags(參見圖 5),單擊 New,並在顯示的窗口中鍵入標記名稱,就可以添加您自己的標記(例如 BUG)。您甚至可以為標記設置優 先級級別,這十分有用,因為您可以按優先級排列 Tasks 視圖中的注釋。
圖 5. 自定義任務標記
重構
重構 允許您輕松地更改一個位置中的代碼並且在代碼出現的其他位置顯示這些更改。如果這聽起來讓人困惑,那麼可以這樣說:這一節的 內容可能是 Eclipse 最精彩的部分。由於 Eclipse 包含許多重構功能,而且對所有這些功能進行說明可以自成一篇文章,因此本文主要介紹 一些最常用的重構功能。
重命名重構
重命名重構 可能是所有重構中最常用的。您可以使用它重命名項目中的任何方法、變量或類。要嘗試使用它,請執行以下操作:
1、在編輯器中選擇任意一個變量。
2、在位於 Eclipse GUI 頂部的菜單中單擊 Refactor > Rename,如圖 6 所示。Java 編輯器將把框放置在變量名周圍及使用它的所有 位置中。
圖 6. Refactor 菜單將提供許多重構功能
3、鍵入變量的新名稱,然後按 Enter 鍵。使用該變量的所有位置將自動改為使用新名稱。
同樣地,您可以更改類和方法的名稱。使用它們的所有位置都將改為使用新名稱。這樣,您不必手動定位調用方法的每個實例並進行更改, 這將為您節省大量時間並避免潛在錯誤。您可以輕松地更改 Java 項目中的任何方法、變量和類的名稱,而不用再去管它。
移動重構
此類重構在將類從一個包移到另一個包中時尤為有用。您可能會經常使用它 — 僅次於重命名重構。要嘗試使用它,請執行以下操作:
1、右鍵單擊 Package Explorer 中的任意一個類,然後單擊 Refactor > Move。系統將打開一個窗口,該窗口顯示當前項目及該項目依 賴的任何其他項目中的包。
2、選擇需要將該類移到哪個包中,然後單擊 OK。該類將被物理地移到新包中,並且代碼中對它的所有引用 — 例如 import 語句 — 將改 為引用其新位置。
如果想要跳過這些步驟,您可以將類從一個包拖放到另一個包中。移動重構將自動執行。
構建 Java 項目
Eclipse 沒有 Compile 按鈕。這會使許多新手感到十分慌亂,但是它是 Eclipse 的另一個令人感到驚奇的功能。您永遠不需要編譯 Java 項目,因為始終在構建項目。只要保存文件,Eclipse 就會在後台編譯它以及它影響的所有其他文件,因此您從未注意到它。此行為將減少啟 動項目所需的時間,因為您永遠都不需要等待它重新編譯。
運行項目
運行 Java 項目的最簡單方法是打開包含 main 方法的文件,然後單擊工具欄上的 Run.這樣做將創建啟動配置。下一次需要運行項目時, 單擊 Run 旁邊的箭頭,如圖 7 所示並選擇帶有包??? main 方法的類名的配置。
圖 7. 運行項目
調試項目
您應當從在代碼中放置斷點開始進行調試。您可以在編輯器中單擊需要放置斷點的行的最左側列來完成。啟動調試模式類似於運行項目,只 是要單擊工具欄中的 Debug 而非 Run.
圖 8. 調試項目
在到達一個斷點時,Eclipse 窗口將彈出到前台並且自動切換到 Debug 透視圖,其中包含有助於調試程序的視圖。下面是一些常用視圖的 簡要說明:
Debug 視圖
該視圖將控制當前運行的程序,允許您通過程序查看堆棧和步驟。您甚至可以使用該視圖暫停或停止程序。
Variables 視圖
該視圖將顯示當前方法中的本地變量。值將隨著您在程序中的位置變換而更改。
Breakpoints 視圖
該視圖將列出當前斷點。您可以通過選擇或清除列表中的斷點來啟用或禁用斷點。
Expressions 視圖
該視圖允許您鍵入任意的 Java 表達式,並且在程序執行的當前點的上下文中查看它的值。要將 Java 表達式添加到該視圖中,請執行以下 操作:
結束語
本文說明了 Eclipse JDT 及其提供的功能。您現在知道如何根據需要自定義 JDT 的各個部分,並且應當了解了可能會令 JDT 新手感到困 惑的一些事。
“精通 Eclipse” 這一系列的第 3 部分將主要介紹 JDT 的最強大部分 — 其編輯器 — 並說明其強大的功能。