配置Eclipse來開發(fā)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下. 比如: 我們?yōu)橐粋€大的項目創(chuàng)建一個workspace, 每個單一的module可以創(chuàng)建project來實現.
==================
Eclipse 項目基本上有如下幾個部分組成:
==================
.classpath文件,<必需>, 包含項目的classpath信息
.project文件, <必需>, 包含項目的基本信息, 如名稱
.settings目錄,<不是必需的>, 包含項目的編譯器設置信息
lib目錄,<不是必需的>, 推薦作為一些外部jar的存放目錄
src目錄,<不是必需的>, 推薦作為source的根目錄
bin目錄,<不是必需的>, 推薦作為項目的output目錄
==================
Compliler的設置
==================
在新建一個Java Project, 我們可以選擇使用哪個版本的JRE. 在項目生成后也可以調整在菜單Project/Property窗口, Java Compiler節(jié)點設置.
==================
如何編譯項目
==================
Visual Studio可以直接 Build Project或Solution, 在Eclipse的Run菜單怎么也找不到類似的菜單項. 后來在Project菜單找到 Build All (Ctrl+B)/ Build Project/ Build Automatically, 只有當Build Automatically為禁用狀態(tài), 才可能選Build All進行手動Build.
==================
設置項目src和output的布局
==================
Windows菜單Preferences窗體的Java/Build Path可以指定新項目默認的source和output的布局方案, 有2種備選方案, (1)project方案, 這種方案是將code和編譯后的*.class放在一起. (2)Folders方案, 這種方案是將source和output放置在不同的目錄中, 推薦使用Folders方案.
當然在創(chuàng)建項目后, 也有機會修改output的路徑, 方法是: 在Project的Property窗體的Java Build Path節(jié)點, 有Default output folder, 比如項目名為Test, 我認為輸出目錄設置為Test/bin是一個好的推薦.
==================
Library的設置
==================
Visual Studio的Project保存reference路徑優(yōu)先選用相對路徑, 當然base路徑為項目目錄. 這就很方便了, 無論team中誰打開這個項目, 都不會碰到找不到依賴庫的問題, 只要大家在獲取項目源碼時候, 一同獲取reference 包.
其實, Eclipse也可以做到這點, 假設我們的project名為 Project_Abc, 下面是幾種方法:
方法1:在workspace/Project_Abc目錄新增lib子目錄, 復制架包到這個目錄, 然后在Eclipse的Package Explorer中刷新Project_Abc項目, 就會在Package Explorer中看到有一個新的節(jié)點lib. 然后在Project_Abc的properties屬性, 在Java Build Path節(jié)點的libraries tab頁面中, 使用按鈕Add JARs的將架包加入. 這種方法適合于架包比較小的情況, 因為你需要將架包加到Project_Abc的lib文件夾中, 而且不需要有太多的手動動作.
方法2: 在Project_Abc的properties屬性, 在Java Build Path節(jié)點的libraries tab頁面中, 使用按鈕Add External JARs的將架包加入, 然后退出eclipse, 手動打開workspace/Project_Abc/.classpath文件, 修改對應架包的目錄為相對路徑. 這個方法比方法1適用面更廣, 因為架包不必一定要放在Project_Abc/lib目錄中.
還有另外幾個方法, 詳見下面文章.
<<Eclipse3.2/3.3中指定第三方包(JAR)和類路徑(CLASSPATH)的幾個方法>> http://blog.csdn.net/ruyanhai/archive/2007/10/16/1826876.aspx
<<使用類路徑容器簡化 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節(jié)點內容即可.
==================
幾個快捷鍵
==================
(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 插件, 我將專門匯總一個文章.

浙公網安備 33010602011771號