日期:2014-05-16  浏览次数:20389 次

findbug使用

当我们编写完代码,做完单元测试等各种测试后就提交正式运行,只能由运行的系统来检测我们代码是否有问题了,代码中隐藏的错误在系统运行的过程中被发现后,然后再来进行相应的修改,那么后期修改的代价就相当高了。

  现在有很多Java代码分析工具,FindBugs中开源项目当中的一个,它可以帮你找到代码中隐藏的一些错误,提升你的代码能力与系统安全可靠性。

  安装

  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目录下去。

? 1. 前提是你已经安装好了Eclipse工具了,比如安装在E:\OpenSource\Eclipse\目录下,以下这个目录以%ECLIPSE_HOME%来进行表示;
? 2. 此时默认的插件是在%ECLIPSE_HOME%\plugins目录中的;
? 3. 在%ECLIPSE_HOME%下建立一个PlugInsNew的目录;
? ? ?比如:E:\OpenSource\Eclipse\PlugInsNew\
? 4. 你下载了个新的插件,比如叫做:XYZ
? ? ? 那么就在%ECLIPSE_HOME%\PlugInsNew\目录下建立XYZ目录,目录里面是eclipse目录,eclipse目录包含有features与plugins两个子目录;结构如下图所示:
点击在新窗口中浏览此图片
? 5. 把下载的新插件的文件放在以下相应目录中
? ? ?%ECLIPSE_HOME%\PlugInsNew\XYZ\eclipse\features
? ? ?%ECLIPSE_HOME%\PlugInsNew\ XYZ\eclipse\plugins
? 6. 建立相关的.link的文件
? ? ?然后在%ECLIPSE_HOME%\links目录里建立一个XYZ.link的文件
? ? ?内容如是:path=E:/OpenSource/Eclipse/PlugInsNew/XYZ就一行这样的路径指示而已。
? ? ?当然,采用相对路径来表示可能更直观一些,方便进行文件整体移动和小组全部成员的共享命名用,省得移动后要改动Link文件里的绝对路径而费心费力。直接拷贝过去就可以使用。
? ? ?即XYZ.link文件的内容如是:path=../PlugInsNew/XYZ
? ? ?这样,如果你下载了多个插件就可以如法炮制建立多个Link文件,想加载哪个插件就把哪个插件的Link文件放到%ECLIPSE_HOME%\links的目录中即可,使用与管理都很方便,建议千万不要放在默认的安装目录中;
? ? ?如果你的%ECLIPSE_HOME%与此不同,请修改XYZ.link文件里的路径
? 7. 删除,关闭Eclipse
? ? ?删除%ECLIPSE_HOME%\links\XYZ.link文件即可
? ? ?删除%ECLIPSE_HOME%\PlugInsNew\XYZ整个目录及文件
? 8. 重新启动Eclipse即可?

  使用

  重新启动Eclipse后,在Help => About Eclipse SDK => Plug-in Details你可以看到由“FindBugs Project”提供的“FindBugs Plug-in”版本0.0.17插件,如下图所示:
点击在新窗口中浏览此图片
FindBugs的使用方法

  FindBugs是一个可以在Java程序中发现Bugs的程序。

  它是专门用来寻找处于“Bug Patterns”列表中的代码的。

  Bug Patterns指很有可能是错误的代码的实例。

  目前FindBugs最高版本1.1.3,不过更新速度很快的,你应当经常上去看看是否有新版本发布。Eclipse plugin for FindBugs最高版本1.1.3。

  系统要求

  使用FindBugs至少需要JDK1.4.0以上版本,FindBugs是平台独立的,可以运行于GNU/Linux、Windows、MacOS X 等平台上。

  运行FindBugs至少需要有256 MB内存,如果你要分析一个很大的项目,那就需要更加多的内存了。

  FindBugs独立运行和与Ant结合的详细操作就不介绍了,可以看官方的文档http://findbugs.sourceforge.net/manual/

  独立运行的效果图如下:
点击在新窗口中浏览此图片?
本文主要介绍在Eclipse中使用的情况

  打开Bug Details视图

  Windows => Show View => Other… => FindBugs => BugDetails
点击在新窗口中浏览此图片

在Package Explorer或Navigator视图中,选中你的Java项目,右键,可以看到“Find Bugs”菜单项,子菜单项里有“Find Bugs”和“Clear Bug Markers”两项内容,如下图所示:
点击在新窗口中浏览此图片

我们建立一个简单的测试文件Test.java 内容如下:

public class Test?
{?
private String[] name;?
public String[] getName()?
{?
return name;?
}?

public void setName(String[] name)?
{?
this.name = name;?
}?
}?


  我们点中“Find Bugs”,运行时会出现如下进度框:

  运行结束后可以在Problems中看到增加了如下的警告信息内容

  FindBugs运行后的警告信息内容不仅在Problems视图中显示,而且将标记在源代码标记框中,在源代码编辑器中我们可以看到警告标识,如下图:

  当光标指向你的警告信息的代码上面时,就会有相应的错误提示信息,与Eclipse本身的错误或警告信息提示类似。

  选中Problems视图里出现的相应问题,就会在代码编辑器里切换到相应的代码上去,方便根据相应的提示信息进行代码的修改。
点击在新窗口中浏览此图片

? ?在Problems视图里,选中相应的问题条目,右键,在弹出的菜单中,可以看到“Show Bug Details”,如下图所示:
点击在新窗口中浏


                        <div class=