1 、 FindBugs 介绍
FindBugs 是一款 Java 静态代码分析工具,与其他静态分析工具(如 Checkstyle 和 PMD )不同, FindBugs 不注重样式或者格式,它专注于寻找真正的缺陷或者潜在的性能问题 , 它可以帮助 java 工程师提高代码质量以及排除隐含的缺陷。有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析。
最新版本是 1.3.9.20090821 ,下载地址 http://findbugs.sourceforge.net/downloads.html 。
FindBugs 运用 Apache BCEL 库分析类文件( class 文件)而不是源代码,将字节码与一组缺陷模式进行对比以发现可能的问题。 FindBugs 的检测器已增至 300 多条,被分为不同的类型,常见的类型如下:
· 正确性( Correctness ):这种归类下的问题在某种情况下会导致 bug ,比如错误的强制类型转换等。
· 最佳实践反例( Bad practice ):这种类别下的代码违反了公认的最佳实践标准,比如某个类实现了 equals 方法但未实现 hashCode 方法等。
· 多线程正确性( Multithreaded correctness ):关注于同步和多线程问题。
· 性能( Performance ):潜在的性能问题。
· 安全( Security ):安全相关。
· 高危( Dodgy ): FindBugs 团队认为该类型下的问题代码导致 bug 的可能性很高。
2、 在 Eclipse 中安装 FindBugs 插件
下载 Eclipse plugin 的版本, 解压 zip 文件。
将解压后的文件放到 Eclipse 的 Plugin 中。
重新启动 Eclipse 。
我使用的是 MyEclipse8.5 可能路径和大家的不太一样,我是放到了路径 Genuitec/MyEclipse 8.5/dropins 下面
3、 在 Eclipse 中使用 FindBugs
重新启动 eclipse
打开 FindBugs 视图
执行 Find Bug 任务
右键单击你要检测的工程、包或文件, -->Find Bugs-->Find Bugs 。
check 完成后将在 Bug Explorer 视图中看到问题列表,该列表以问题类型组织。
展开列表,双击列表中具体的问题就可以定位的具体的代码行。
4
、
配置
FindBugs
在
这里
可以对
FindBugs
规则等进行详细设置。
选择你的项目,右键
=> Properties => FindBugs =>
1
Run Automatically
开关
当此项选中后,
FindBugs
将会在你修改
Java
类时自动运行,如你设置了
Eclipse
自动编译开关后,当你修改完
Java
文件保存,
FindBugs
就会运行,并将相应的信息显示出来。
当此项没有选中,你只能每次在需要的时候自己去运行
FindBugs
来检查你的代码。
2
Detector
Configuration
选择项
在这里你可以选择所要进行检查的相关的
Bug Pattern
条目
,
你可以根据需要选择或去掉相应的 检查条件。
3
Minimum priority to report
选择项
这个选择项是让你选择哪个级别的信息进行显示,有
Low
、
Medium
、
High
三个选择项可以选择,很类似于
Log4J
的级别设置啦。 比如:
你选择了
High
选择项,那么只有是
High
级别的提示信息才会被显示。
你选择了
Medium
选择项,那么只有是
Medium
和
High
级别的提示信息才会被显示。
你选择了
Low
选择项,那么所有级别的提示信息都会被显示。
4
Report
bug categories
选择项
在这里是一些显示
Bug
分类的选择:
Malicious code vulnerability
关于恶意破坏代码相关方面的
Correctness
关于代码正确性相关方面的
Internationalization
关于代码国际化相关方面的
Performance
关于代码性能相关方面的
Multithreaded correctness
关于代码多线程正确性相关方面的
另外 FindBugs 有 UI 页面,可以单独运行。也可以通过 Ant 以及命令行方式运行。