eclipse使用SpotBugs对代码进行静态检查

SpotBugs是一个java静态代码分析程序,能帮助我在查找代码中潜在的bug。目前是一款免费软件,由GNU Lesser General Public License发布的。

SpotBugs是对FindBugs的继承,因此具有FindBugs的几乎所有功能,同时又有所提升。
SpotBugs需要运行JRE(或JDK)1.8.0或更高版本。但是,它可以分析从1.0到1.9版本的Java编译的程序。

目前SpotBugs可以检查出超过400种形式的潜在bug如下形式:
Bad practice (90余种):常见代码错误,用于静态代码检查时进行缺陷模式匹配(如重写equals但没重写hashCode,或相反情况等)
Correctness(155余种) 可能导致错误的代码(如空指针引用、无限循环等)
Experimental (9种)实验性
Internationalization(2种) 国际化相关问题(如错误的字符串转换等)
Malicious code vulnerability(17种) 可能受到的恶意攻击(如访问权限修饰符的定义等)
Multithreaded correctness(46种) 多线程的正确性(如多线程编程时常见的同步,线程调度问题等)
BogusMultithreaded correctness(4种) 多线程的正确性(如多线程编程时常见的同步,线程调度问题等)
Performance(37种) 运行时性能问题(如由变量定义,方法调用导致的代码低效问题等)
Security(11种) 安全问题(如HTTP,SQL,DB等)
Dodgy(87种) code 导致自身错误的代码(如未确认的强制转换、冗余的空值检查等)

更方便的是,SpotBugs可以成为独立程序使用也可以在Ant,Maven,Gradle,Eclipse等集成环境中下载插件使用。而且SpotBugs还可以通过下载插件进行个性化扩展,能大大减轻程序员检查代码的工作量。

下面主要说明如何在eclipse中使用SpotBugs:
首先在marketplace里搜索spotbugs。
eclipse使用SpotBugs对代码进行静态检查
然后安装它,可以看见,使用量还是很庞大的:
eclipse使用SpotBugs对代码进行静态检查
然后就可以开始使用了,只需在需要检查的地方右键,然后找到find bugs即可:
eclipse使用SpotBugs对代码进行静态检查
然后在eclipse工具栏找到如下臭虫即可:
eclipse使用SpotBugs对代码进行静态检查
打开后就可以看见隐藏bug了,十分方便。

最后附上SpotBugs 官方文档地址:
https://spotbugs.readthedocs.io/en/latest/installing.html

对于spotbugs bug形式的总结引用自博客:
https://blog.****.net/zhangb00/article/details/84070706

补充关于程序错误为什么叫bug的原由:
在 1949 年 9 月 9 日,一间一战时建造的老建筑物内,没空调,工作人员把窗户都打开了,然后有一只蛾飞了进来,结果那只蛾死在 70 号继电器里面,造成电路不通,机器死机,他们没办法算出他们要的结果。
经过了近一天的检查,Grace 找到了那只蛾,她设法用她的发夹把那只蛾弄了出来,还把那只蛾的尸体贴在她的管理日志上,上面写道:就是这个Bug,害我们今天的工作无法完成。
自此之后,在计算机科学中,Bug 从虫子变成了程序的错误。