天天看點

配置Eclipse來開發Java 程式

Eclipse的設定

用慣了Visual Studio, 切換到Eclipse有很多不習慣的地方. 總結了幾點, 以免忘記後重複摸索.  本文是基于Eclipse 3.1.0, 可能不适用于更新的Eclipse版本.

強烈推薦下面2個Eclipse教程:

http://www.javahotchocolate.com/tutorials/use-eclipse.html

http://www3.ntu.edu.sg/home/ehchua/programming/howto/EclipseJava_HowTo.html

如何了解Eclipse的workspace和project呢? Eclipse 的workspace其實是一個sandbox, 在不同的sandbox中, 有不同的eclipse配置, 不同的JRE設定, 當然包含的項目也不同. 推薦的做法是, 讓一個workspace在地位上等同visual studio的一個solution,  不要将好不相關的項目放在一個worksapce下. 比如: 我們為一個大的項目建立一個workspace, 每個單一的module可以建立project來實作.

==================

Eclipse 項目基本上有如下幾個部分組成:

==================

.classpath檔案,<必需>, 包含項目的classpath資訊

.project檔案, <必需>, 包含項目的基本資訊, 如名稱

.settings目錄,<不是必需的>, 包含項目的編譯器設定資訊

lib目錄,<不是必需的>, 推薦作為一些外部jar的存放目錄

src目錄,<不是必需的>, 推薦作為source的根目錄

bin目錄,<不是必需的>, 推薦作為項目的output目錄

==================

 Compliler的設定

==================

在建立一個Java Project, 我們可以選擇使用哪個版本的JRE. 在項目生成後也可以調整在菜單Project/Property視窗, Java Compiler節點設定.  

==================

 如何編譯項目

==================

Visual Studio可以直接 Build Project或Solution, 在Eclipse的Run菜單怎麼也找不到類似的菜單項. 後來在Project菜單找到 Build All (Ctrl+B)/ Build Project/ Build Automatically, 隻有當Build Automatically為禁用狀态, 才可能選Build All進行手動Build.

==================

 設定項目src和output的布局

==================

Windows菜單Preferences窗體的Java/Build Path可以指定新項目預設的source和output的布局方案, 有2種備選方案, (1)project方案, 這種方案是将code和編譯後的*.class放在一起. (2)Folders方案, 這種方案是将source和output放置在不同的目錄中, 推薦使用Folders方案.

當然在建立項目後, 也有機會修改output的路徑, 方法是: 在Project的Property窗體的Java Build Path節點, 有Default output folder, 比如項目名為Test, 我認為輸出目錄設定為Test/bin是一個好的推薦.

==================

 Library的設定

==================

Visual Studio的Project儲存reference路徑優先選用相對路徑, 當然base路徑為項目目錄. 這就很友善了, 無論team中誰打開這個項目, 都不會碰到找不到依賴庫的問題, 隻要大家在擷取項目源碼時候, 一同擷取reference 包.

其實, Eclipse也可以做到這點, 假設我們的project名為 Project_Abc, 下面是幾種方法:

方法1:在workspace/Project_Abc目錄新增lib子目錄, 複制架包到這個目錄, 然後在Eclipse的Package Explorer中重新整理Project_Abc項目, 就會在Package Explorer中看到有一個新的節點lib. 然後在Project_Abc的properties屬性, 在Java Build Path節點的libraries tab頁面中, 使用按鈕Add JARs的将架包加入.  這種方法适合于架包比較小的情況, 因為你需要将架包加到Project_Abc的lib檔案夾中, 而且不需要有太多的手動動作.

方法2: 在Project_Abc的properties屬性, 在Java Build Path節點的libraries tab頁面中, 使用按鈕Add External JARs的将架包加入, 然後退出eclipse, 手動打開workspace/Project_Abc/.classpath檔案, 修改對應架包的目錄為相對路徑. 這個方法比方法1适用面更廣, 因為架包不必一定要放在Project_Abc/lib目錄中.

還有另外幾個方法, 詳見下面文章.

<<Eclipse3.2/3.3中指定第三方包(JAR)和類路徑(CLASSPATH)的幾個方法>>

<<使用類路徑容器簡化 Eclipse 類路徑>>

http://www.ibm.com/developerworks/cn/education/opensource/os-eclipse-classpath/section2.html

==================

 如何檢視一個架包的源碼

==================

有時候想在Eclipse中某個架包的源碼, 要完成這個功能, 需要你有該jar的源碼, 然後在eclipse中将源碼attach到jar上. 方法是: 在Eclipse的package explorer中選中jar, 然後右擊菜單中打開property窗體, 配置Java source attachment節點内容即可.

==================

 幾個快捷鍵

==================

(0) Ctrl+Shift+L, 顯示所有快捷鍵功能清單

(1) Alt+Shift+/, 可以提示一個函數的參數, 可以使用Ctrl+Space代替

(2) Alt+?, Eclipse将試着直接進行Code Completion, 比如補齊函數名, 補齊變量名, 但第一次補齊有可能不對, 你需要不斷按Alt+?, 來找到你要的東西, 這樣的話, 效率就很差, 不如直接使用Ctrl+Space, 然後我們自己選.

(3) Ctrl+Space, 代碼智能提示, 多數情況下, 會彈出一個下拉框供我們選擇合适的代碼

(4) Ctrl+1, 當某行代碼有誤時, Eclipse Editor左邊框會出現一個小紅叉, 滑鼠點選這個小紅叉, Eclipse就會彈出quick fix對話框, 當然我們也可以用Ctrl+1快捷鍵來調出quick fix對話框

(5) Ctrl+B, Build 所有的project

(6) F3, 跳轉到類或對象定義的地方

(7) Ctrl+Alt+H, 可以顯示某個方法在哪些地方被調用, 即顯示Call Hierarchy, 這個快捷鍵僅僅适用于檢視方法的調用, 我暫時還沒有找到适用于屬性的快捷鍵

(8) Ctrl+J 正向增量查找(按下Ctrl+J後,你所輸入的每個字母編輯器都提供快速比對定位到某個單詞,如果沒有,則在status bar 中顯示沒有找到

(9) Ctrl+F6:切換到下一個編輯器。Ctrl+Shift+F6:切換到上一個編輯器。

(10)【Alt+←】、【Alt+→】  後退曆史記錄和前進曆史記錄,在跟蹤代碼時非常有用,使用者可能查找了幾個有關聯的地方,但可能記不清楚了,可以通過這兩個快捷鍵定位查找的順序。

==================

 如果組織JUnit 用例代碼

==================

以下部分摘自文章, <<使用junit時源代碼和測試代碼的組織>>, http://www.99inf.net/SoftwareDev/Java/29964.htm

http://www.clarkware.com/articles/JUnitPrimer.html

推薦的JUnit代碼應該和被測試代碼放在同一個package中, 不同的目錄下.  這樣既可以友善地測試protected方法/域,同時不會導緻源代碼和測試代碼混在一起。也就是組織成下面這樣:

1.      src

2.       com

3.           xyz

4.              HelloWorld.java

5.      test

6.        com

7.           xyz

8.              HelloWorldTest.java

使用的是Eclipse, 組織上面的結構非常簡單, 隻需要在project中新增一個source folder, 專門用來存放junit代碼, 比如test目錄.     

關于Junit4的使用, 可以看一下下面2個短文.    

http://www.cavdar.net/2008/07/21/junit-4-in-60-seconds/

​​http://www.javabeat.net/tips/159-junit-40-example.htm​​

有關eclipse 插件, 我将專門彙總一個文章.