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 插件, 我将專門彙總一個文章.