Eclipse的FindBugs插件 | |
問題提出: 當(dāng)我們編寫完代碼,做完單元測試等各種測試后就提交正式運(yùn)行,只能由運(yùn)行的系統(tǒng)來檢測我們代碼是否有問題了,代碼中隱藏的錯誤在系統(tǒng)運(yùn)行的過程中被發(fā)現(xiàn)后,然后再來進(jìn)行相應(yīng)的修改,那么后期修改的代價就相當(dāng)高了。 解決方法: 現(xiàn)在有很多Java代碼分析工具,F(xiàn)indBugs中開源項目當(dāng)中的一個,它可以幫你找到代碼中隱藏的一些錯誤,提升你的代碼能力與系統(tǒng)安全可靠性。 安裝 JDK:1.5.0 從http://java.sun.com上去下載安裝 Eclipse:3.1.1 從http://www.eclipse.org 上去下載解壓 FindBugs:0.9.4 從http://findbugs.sourceforge.net/ 官方的文檔 http://findbugs.sourceforge.net/manual/ Eclipse plugin for FindBugs version 0.0.17 從 http://findbugs.sourceforge.net/downloads.html 下載 插件管理技巧 提示:新下載的插件PlugIn一定不要都放在原始的Eclipse目錄下去。
使用 重新啟動Eclipse后,在Help => About Eclipse SDK => Plug-in Details你可以看到由“FindBugs Project”提供的“FindBugs Plug-in”版本0.0.17插件,如下圖所示: ![]() FindBugs的使用方法 FindBugs是一個可以在Java程序中發(fā)現(xiàn)Bugs的程序。 它是專門用來尋找處于“Bug Patterns”列表中的代碼的。 Bug Patterns指很有可能是錯誤的代碼的實(shí)例。 目前FindBugs最高版本0.9.4,不過更新速度很快的,你應(yīng)當(dāng)經(jīng)常上去看看是否有新版本發(fā)布。Eclipse plugin for FindBugs最高版本0.0.17。 系統(tǒng)要求 使用FindBugs至少需要JDK1.4.0以上版本,F(xiàn)indBugs是平臺獨(dú)立的,可以運(yùn)行于GNU/Linux、Windows、MacOS X等平臺上。 運(yùn)行FindBugs至少需要有256 MB內(nèi)存,如果你要分析一個很大的項目,那就需要更加多的內(nèi)存了。 FindBugs獨(dú)立運(yùn)行和與Ant結(jié)合的詳細(xì)操作就不介紹了,可以看官方的文檔http://findbugs.sourceforge.net/manual/ 獨(dú)立運(yùn)行的效果圖如下: ![]() 打開Bug Details視圖 Windows => Show View => Other… => FindBugs => BugDetails ![]() 在Package Explorer或Navigator視圖中,選中你的Java項目,右鍵,可以看到“Find Bugs”菜單項,子菜單項里有“Find Bugs”和“Clear Bug Markers”兩項內(nèi)容,如下圖所示: ![]() 我們建立一個簡單的測試文件Test.java 內(nèi)容如下: public class Test { private String[] name; public String[] getName() { return name; } public void setName(String[] name) { this.name = name; } } 我們點(diǎn)中“Find Bugs”,運(yùn)行時會出現(xiàn)如下進(jìn)度框: 運(yùn)行結(jié)束后可以在Problems中看到增加了如下的警告信息內(nèi)容 FindBugs運(yùn)行后的警告信息內(nèi)容不僅在Problems視圖中顯示,而且將標(biāo)記在源代碼標(biāo)記框中,在源代碼編輯器中我們可以看到警告標(biāo)識,如下圖: 當(dāng)光標(biāo)指向你的警告信息的代碼上面時,就會有相應(yīng)的錯誤提示信息,與Eclipse本身的錯誤或警告信息提示類似。 選中Problems視圖里出現(xiàn)的相應(yīng)問題,就會在代碼編輯器里切換到相應(yīng)的代碼上去,方便根據(jù)相應(yīng)的提示信息進(jìn)行代碼的修改。 ![]() 在Problems視圖里,選中相應(yīng)的問題條目,右鍵,在彈出的菜單中,可以看到“Show Bug Details”,如下圖所示: ![]() 點(diǎn)中它,會切換到Bug Details視圖上去,顯示更加詳細(xì)的提示信息。 當(dāng)然,在代碼編輯窗口中,點(diǎn)擊帶有警告提示信息的圖標(biāo)時,也會自動切換到Bud Details窗口去,查看詳細(xì)的警告信息,如下圖所示。 ![]() 根據(jù)這里詳細(xì)的信息,你可以得到FindBugs為什么會對你的代碼報警告信息,及相應(yīng)的處理辦法,根據(jù)它的提示,你可以快速方便地進(jìn)行代碼修改。 ![]() 根據(jù)提示,我們將代碼修改成如下,再運(yùn)行就不會報有警告信息了。 public class Test { private String[] name; public String[] getName() { String[] temp = name; return temp; } public void setName(String[] name) { String[] temp = name; this.name = temp; } } 配置FindBugs 選擇你的項目,右鍵 => Properties => FindBugs => ![]() 可以配置的信息包括如上圖所示的四個選項的相關(guān)設(shè)置:
總結(jié) 此插件的功能很不錯,可以幫助我們提升Java代碼的編寫能力,寫出更加安全可靠的代碼。建議使用或加在Ant里進(jìn)行持續(xù)構(gòu)建。現(xiàn)在,你可以馬上拿出你已經(jīng)開發(fā)的一個項目,檢查一下你的代碼有沒有問題了。 |
只有注冊用戶登錄后才能發(fā)表評論。 | ||
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
|
||
相關(guān)文章:
|
||
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
27 | 28 | 29 | 30 | 31 | 1 | 2 | |||
3 | 4 | 5 | 6 | 7 | 8 | 9 | |||
10 | 11 | 12 | 13 | 14 | 15 | 16 | |||
17 | 18 | 19 | 20 | 21 | 22 | 23 | |||
24 | 25 | 26 | 27 | 28 | 29 | 30 | |||
31 | 1 | 2 | 3 | 4 | 5 | 6 |
常用鏈接
留言簿(3)
隨筆檔案
文章分類
- CoreJava(23)
- DB(2)
- Eclipse的相關(guān)(18)
- File Version Control(1)
- JAVA2一些基本語法(1)
- JS(1)
- Maven2(1)
- SWT(2)
- Web Test Framework(1)
- WebService(5)
- XML(1)
文章檔案
- 2013年4月 (1)
- 2012年7月 (1)
- 2012年6月 (2)
- 2012年4月 (1)
- 2011年12月 (2)
- 2011年8月 (2)
- 2011年5月 (6)
- 2011年4月 (1)
- 2011年1月 (1)
- 2010年12月 (2)
- 2010年11月 (1)
- 2010年10月 (2)
- 2010年9月 (2)
- 2010年8月 (3)
- 2009年12月 (3)
- 2009年11月 (1)
- 2009年8月 (1)
- 2009年6月 (1)
- 2009年3月 (3)
- 2008年10月 (4)
- 2008年8月 (5)
- 2008年7月 (1)
- 2008年5月 (3)
- 2008年3月 (3)
- 2007年10月 (1)
- 2007年5月 (2)
- 2006年5月 (3)
相冊
搜索
最新評論

- 1.?re: Java Path[未登錄]
- Very helpful, 3ks a lot
- --coder
- 2.?re: MyEclipse + AXIS2
- 評論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
- --wangqf
- 3.?re: JVM 內(nèi)存初學(xué) (堆(heap)、棧(stack)和方法區(qū)(method) )
- 寫得挺好的,容易理解。
- --陳同兵
- 4.?re: 獲得當(dāng)前運(yùn)行jar包存放路徑的方法
- 評論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
- --mu
- 5.?re: MyEclipse + AXIS2
-
從tomcat中的axis2 web應(yīng)用WEB-INF/lib目錄中加載所有jar包到項目的classpath中。
能不能具體說說怎么做?我將jar文件全部拷貝到項目的lib里……不行 - --zmaike