1.FindBugs是什么?
FindBugs 是一个静态分析工具它是一个java bytecode静态分析工具,它可以帮助开发者提高代码质量以及排除隐含的缺陷,如:NullPoint空指针检查、没有合理关闭资源、字符串相同判断错(==、而不是equals)等它检查类或者JAR文件,将字节码与一组缺陷模式进行对比以发现可能的问题它也可以在不实际运行程序的情况对软件进行分析
1.Bad practice 坏的实践:常见代码错误,用于静态代码检查时进行缺陷模式匹配2.Correctness可能导致错误的代码,如空指针引用等3.国际化相关问题如错误的字符串转换4.可能受到的恶意攻击访问权限修饰符的定义等(private/public…)5.多线程的正确性如多线程编程时常见的同步,线程调度问题6.运行时性能问题由变量定义,方法调用导致的代码低效问题
分三类
- ①黑色的臭虫标志是分类
- ②红色的臭虫表示严重bug发现后必须修改代码
- ③橘黄色的臭虫表示潜在警告性bug 尽量修改
- 分四个等级
- scariest(恐怖的)
- scary(吓人的)
- troubling(令人困扰的)
- of concern(值得关注的)
4.离线安装
1. 在线安装:在Eclipse的插件安装地址中输入http://findbugs.cs.umd.edu/eclipse并一路“next”就可安装成功。
2. 离线安装:
- 到 https://sourceforge.net/projects/findbugs/files/findbugs%20eclipse%20plugin/https://sourceforge.net/projects/findbugs/files/findbugs%20eclipse%20plugin/3.0.1/edu.umd.cs.findbugs.plugin.eclipse_3.0.1.20150306-5afe4d1.zip/download
- 解压edu.umd.cs.findbugs.plugin.eclipse_3.0.1.20150306-5afe4d1.zip,将解压后的文件夹edu.umd.cs.findbugs.plugin.eclipse_3.0.1.20150306-5afe4d1复制到eclipse的plugin目录中去
- 重新启动eclipse
- 打开eclipse->window->Preferences,搜索关键字findbugs,如果能找到配置项,那么表示安装成功。
5.使用Findbugs
1. 选择指定的包或者类进行findbug, 右键包或者类,在弹出的对话框中选择Find bugs -> Find Bugs即可。
2. Show view, 中添加findbugs explorer , 可以看到对应的错误信息
3. 找出的bug有3中颜色, 黑色的臭虫标志是分类, 红色的臭虫表示严重bug发现后必须修改代码,橘黄色的臭虫表示潜在警告性bug 尽量修改。scariest(恐怖的)scary(吓人的)troubling(令人困扰的)of concern(值得关注的)
4. 单独配置,如下:

- Enable project specific setting:该项目是否启用自身特殊设置(忽略全局设置)
- Run automnaticaly:编译文件时自动运行。
- Also on full build:编译工程时自动运行。必须同时勾选Enable project specific setting
- Minimum priority to report:根据bug的优先权级别报告bug。
- Malicious code vulnerability:恶意代码。
- Dodgy code:高危代码。FindBugs团队认为该类型下的问题代码导致bug的可能性很高。
- Bad practice:最佳实践反例。这种类别下的代码违反了公认的最佳实践标准,比如某个类实现了equals方法但未实现hashCode方法等。
- Correctness:正确性。这种归类下的问题在某种情况下会导致bug,比如错误的强制类型转换等。
- Internationalization:国际化。
- Performance:性能。潜在性能问题
- Security:安全。
- Mutithreaded correctness:多线程的正确性。关注于同步和多线程问题。
















