FindBugs入门简介(eclipse安装使用实例)

FindBugs入门简介(eclipse安装使用实例)

前言:一般公司都会有一些开发规范,但是事实上,简单看那么一两遍并不能养成习惯,或者将这些规范记住。特别的,对于一些新手,写的代码往往会很糟糕。回头看看你一两年前写的代码就会知道,所谓的”糟糕“是什么一种感觉。

使用一些检测工具,对代码质量的控制确有成效。FindBugs便是这一类不错的工具。

一、FindBugs介绍

FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析。

简言之,FindBugs是一个在Java程序中查找bug的程序,它查找bug模式的实例,也就是可能出错的代码实例。Findbugs是检查java字节码,也就是*.class文件。

其实准确的说,它是寻找代码缺陷的,很多我们写的不好的地方,可以优化的地方,它都能检查出来。

例如:未关闭的数据库连接,缺少必要的null check,多余的 null check,多余的if后置条件,相同的条件分支,重复的代码块,错误的使用了”==”,建议使用StringBuffer代替字符串连加等等。

而且我们还可以自己配置检查规则(做哪些检查,不做哪些检查),也可以自己来实现独有的校验规则(用户自定义特定的bug模式需要继承它的接口,编写自己的校验类,属于高级技巧)。

当然,FindBugs不过是一个工具。作为开发人员,当然首先要在编程的时候努力避免引入bug,而不要依赖于某个工具来为自己把关。不过由于代码的复杂性,一些隐藏的bug确实很难靠咱们的肉眼发现。这时,应用一些好的工具或许就可以帮你发现这样的bug。这便是FingBug存在的价值。

静态分析工具承诺无需开发人员费劲就能找出代码中已有的缺陷。当然,如果有多年的编写经验,就会知道这些承诺并不是一定能兑现。

代码质量工具的一个问题是它们容易为开发人员提供大量但并非真正问题的问题——即 伪问题(false positives)。

二、FindBugs在eclipse的安装

事实上,大多数eclipse插件的安装方式基本类似。无非就是那么两种,下载对应插件离线安装 以及 “help”–>”Install New Software” 安装。第一种离线安装是比较快的。

(1)离线安装:

http://findbugs.sourceforge.net/downloads.html下载20131115123549_nlpir_ictclas2013_u20131115_release.zip,解压后,直接将解压后的edu.umd.cs.findbugs.plugin.eclipse_3.0.1.20150306-5afe4d1放到eclipse的plugins目录,然后重启eclipse皆可。

这里写图片描述

注意了,这里要求的是eclipse3.6及以上的版本,按理说猿基本都能跟上潮流的。可以查看下自己的eclipse版本确认下(Help->About Eclipse)

这里写图片描述

这里写图片描述

小宝鸽的是4.4.2版本

(2)在线安装

点击“Help->InstallNew Software”,如下图:

这里写图片描述

接着如图:

这里写图片描述

Name”输入“findBugs”,“Location”输入“http://findbugs.cs.umd.edu/eclipse” 如下:

这里写图片描述

接着选择对应插件如下:

这里写图片描述

后面的是下一步,下一步就可以了,在线安装可能需要等待比较长的时间,耐心等待,不要中断!

后面会提示你重启eclipse,重启后就可以使用了。

三、FindBugs在Eclipse的使用

(1)安装完成并重启后,选中一个项目,右键如图,选择Find Bugs:

这里写图片描述

(2)运行完成后查看Bug Explorer视图,如果没有该视图,操作如下图:

这里写图片描述

这里写图片描述

(3)如果检查出你的代码问题会出现如下图:

这里写图片描述

(4)点击其中一个叶子节点:

这里写图片描述

上图是小宝鸽故意加的空指针问题。

其他更多使用功能就待猿友们进一步学习啦。因为写博客真心比较花时间~~~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2268.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深度学习中的迁移学习介绍[通俗易懂]

    迁移学习(TransferLearning)的概念早在20世纪80年代就有相关的研究,这期间的研究有的称为归纳研究(inductivetransfer)、知识迁移(knowledgetransfer)、终身学习(life-longlearning)以及累积学习(incrementallearning)等。直到2009年,香港科技大学杨强教授对迁移学习的研究进行了总结和归纳,迁移学习才开始有了较为完善的框架和基本概念。迁移学习的研究范围和研究领域非常广泛。推荐学习迁移学习一个非常好的资源:htt

    2022年4月16日
    46
  • SSO单点登录简单实现

    SSO单点登录简单实现通过 cookie 来实现单点登录 1 单点登录的流程 cookie 是用来在客户端存储数据的工具 在其中一个子系统登录 跳转到登录系统 登陆系统登陆完成 完成登录后会向发起登录的子系统写入一个 cookie 保存用于认证用户是否登录的信息 token 其他子系统向服务器发起请求的时候 携带这个 cookie 完成登录 cookie 的域要是所有子系统相同的域 这样所有子系统才能访问到这个 cookie 2 单点登录流程图 2 单点登录的编码 部分核心代码 代码链接 https gitee com yueh

    2025年8月2日
    2
  • Vue开发手机端页面

    我的github记录册(PS:希望star):https://github.com/tonyzheng1…适配终端:讲解:http://www.w3cplus.com/mobile…源码:https://github.com/amfe/lib-f…代码规范https://github.com/pablohp…

    2022年4月8日
    38
  • 【从翻译mos文章】Weblogic AdminServer 启动fail,报错"unable to get file lock, will retry"

    【从翻译mos文章】Weblogic AdminServer 启动fail,报错"unable to get file lock, will retry"

    2022年1月1日
    57
  • DropDownList绑定ArrayList「建议收藏」

    DropDownList绑定ArrayList「建议收藏」namespaceCDR.components{publicenumAgentLevel{K,A,B,C}publicclassAgent{publicAgentLevelLevel{get{return_level;}}publicstringName{get{return_name;}}priv…

    2022年10月8日
    1
  • 中小型酒店管理系统[通俗易懂]

    中小型酒店管理系统[通俗易懂][摘要]计算机网络如果结合使用信息管理系统,能够提高管理员管理的效率,改善服务质量。优秀的中小型酒店管理系统能够更有效管理用户预订酒店业务规范,帮助管理者更加有效管理用户预订酒店,可以帮助提高克服人工管理带来的错误等不利因素。所以一个优秀的中小型酒店管理系统能够带来很大的作用。本中小型酒店管理系统使用了计算机语言Java和存放数据的仓库MySQl,采用了MVC设计模式来实现。本系统使用了框架SpringBoot实现了中小型酒店管理系统应有的功能,系统主要角色包括管理员、第三方管理员和酒店管理员。[关键词]

    2022年9月25日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号