Findbugs安装和使用说明

合集下载

CheckStyle、FindBugs和PMD的安装与使用概论

CheckStyle、FindBugs和PMD的安装与使用概论

CheckStyle 、FindBugs和PMD 一、三个插件的安装方法一:1.Eclipse中,选择Help->Install New Software2.点击Add来新增一个安装3.输入安装名称和地址a)CheckStyle:/projects/eclipsecs/files/updatesite/5.6.0/b)Findbugs:/eclipsec)PMD:/projects/pmd/files/pmdeclipse/update-site-latest/如果安装地址不对,会报错,如下图:如果安装地址正确,如下:4. 安装后重启即可5.安装好之后,右击项目选择属性,可以看到安装是否成功方法二:1.下载eclipse插件下载后,把里面的两个文件夹plugins和 features下面的文件分别拷贝到eclipse目录下面对应的plugins和features目录2.如果你就这样直接启动eclipse 可能会出现ClassNotFoundExceptions 等错误,所以必须在启动eclipse的时候加上一个参数 -clean. 这样eclipse就可以更新它当前安装的许多插件信息比如你得eclipse在d盘那么就是 d:\eclipse\eclipse.exe -clean二、CheckStyle的介绍和使用1、介绍Checkstyle是一款检查java程序代码样式的工具,可以有效的帮助我们检视代码以便更好的遵循代码编写标准,特别适用于小组开发时彼此间的样式规范和统一。

Checkstyle提供了高可配置性,以便适用于各种代码规范,所以除了可以使用它提供的sun的代码标准外,你也可以定制自己的标准。

我们可以在eclipse中安装checkstyle的插件,来方便我们的使用。

Checkstyle可以让我们养成书写良好代码风格的习惯,代码的整洁也减少了很多bad smell的产生。

使用checkstyle的过程中可能需要经常的调整配置文件,有些check过于严格,可以根据实际情况取消一些代码检查。

IDEA插件FindBugs的使用详解

IDEA插件FindBugs的使用详解

IDEA插件FindBugs的使⽤详解前⾔Findbugs很多⼈都并不陌⽣,Eclipse中有插件可以帮助查找代码中隐藏的bug,IDEA中也有这款插件。

这个插件可以帮助我们查找隐藏的bug,⽐较重要的功能就是查找潜在的null指针。

在编写代码的过程中,我们可能不会⼀直记得检查空的引⽤,在我们测试时可能很难发现问题,但是应⽤上线之后,⾯对⼤量的⽤户,很多问题就会浮现出来。

所以在编码时,使⽤findbugs检查⼀下很有必要。

安装安装完之后,重启studio,会发现左下⾓会出现findbugs的图标可以分析单个⽂件,包下⾯的所有⽂件,整个module下的⽂件,整个project下的⽂件,右键想要分析的⽂件名/包名/module名/project分析完之后就会出现结果⾯板点击对应的item在右边会定位到具体的代码根据需要可以进⾏更改,其中Correctness这个错误使我们重点关注的对象,这⾥⼤多是空指针的错误,根据提⽰进⾏处理。

附:⼀些常见的错误信息Bad practice 代码中的⼀些坏习惯Class names should start with an upper case letter 主要包括类名的命名,以⼤写字母开头Method names should start with a lower case letter ⽅法名以⼩写字母开头Field names should start with a lower case letter 字段名以⼩写字母开头equals()method does not check for null argument equals()⽅法应该检查⾮空Class defines equals() and uses Object.hashCode() ⼀个类覆写了equals⽅法,没有覆写hashCode⽅法,使⽤了Object对象的hashCode⽅法Method ignores exceptional return value ⽅法忽略返回值的异常信息Equals method should not assume anything about the type of its argument equals(Object o)⽅法不能对参数o的类型做任何的假设。

JAVA静态代码质量分析工具FindBugs介绍

JAVA静态代码质量分析工具FindBugs介绍

findbugs.xml和messages.xml两个文件
findbugs.xml的编写
对于每一个新的检测器,在 FindBugs.xml 文件中增加一 个 Detector 元素和一个 BugPattern 元素。 Detector 元素指定用于实现检测器的类以及它是快速还是慢速检测 器。speed 属性的可能值有 slow、moderate 和 fast。 BugPattern 元素指定三个属性。 abbrev 属性定义检测 器的缩写。缩写用于标识用命令行客户运行时检测到的缺 陷。可以用同一个缩写将几个相关的检测器组织到一起。.
准备工作 下载到ant和findbugs。并且配置好它们的环境 变量
编写ant脚本(build.xml)
build.xml部分属性参数说明
class 嵌套元素指定要分析的类。这个元素必须 指定一个location属性,location属性的名字为 archive文件(jar,zip等)、目录或者class文件。 可以为一个findbugs元素指定多个class元素。 auxClasspath 可选的嵌套元素,用于指定要分 析的类所引用的类,但是并不对引用的类进行分 析。 sourcePath 可选的嵌套元素,指定Java源代码 的目录。
Hale Waihona Puke 自定义FindBugs检测器
编写自定义的检测器Detector 项目中需要引入FindBugs的jar文件:findBug.jar 自定义的检测器需要继承OpcodeStackDetector 重写其sawOpcode方法。下面用一个简单的自定义 检测器来说明。此检测器是用来查找项目中有没有 system.out和system.error情况出现的。建议编 写的时候可以先查看FindBugs源代码以查找类似于 你要编写的检测器。

【工利其器】必会工具之(五)FindBugs篇——让工具找出你代码中的bug

【工利其器】必会工具之(五)FindBugs篇——让工具找出你代码中的bug

【⼯利其器】必会⼯具之(五)FindBugs篇——让⼯具找出你代码中的bug 前⾔转载请声明,转⾃【】,谢谢!项⽬中代码质量,往往需要⽐较有经验的程序员的审查来保证。

但是随着项⽬越来越⼤,代码审查会变得越来越复杂,需要耗费越来越多的⼈⼒。

⽽且程序员的经验和精⼒都是有限的,能审查出问题必定有限。

⽽在对代码质量要求越来越严格的当今IT界,这⽆疑是个⽭盾点。

幸运的是,不少公司发布了代码扫描⼯具,来检测代码中存在的问题。

尽管它们⽆法扫描出所有的bug,但仍然能够为我们的⼯作带来极⼤的便利。

其中FindBugs就是这其中的佼佼者,本⽂将结合Android Studio 来介绍该⼯具的使⽤。

⼀、FindBugs简介FindBugs是⼀款Java缺陷检测⼯具,它通过分析静态字节码可以查找出200多种错误模式,例如空指针取消引⽤、⽆限递归循环、Java库的错误使⽤和死锁等。

⼆、安装FindBugs插件Android Studio默认是没有安装FindBugs插件的,需要我们⾃⼰进⾏安装。

所幸Android Studio提供了丰富的插件,可以直接从库插件库中进⾏安装。

当然也可以⾃⼰⼿动从⽹上下载好该插件,然后安装。

这⾥将两种⽅法都简单介绍⼀下。

1、从Android Studio插件库中安装点击⾯板中主菜单Files > Settings > Plugs 就可以进⼊到插件中⼼,如下图所⽰:②处可以输⼊要查找的插件名,如果安装了,并满⾜③处筛选条件,会显⽰在④处列表中。

③处选择筛选范围,④处⽤于显⽰在②处和③处所指定条件下查询到的插件列表,右边的选择框可选中表⽰该插件可以⽤,否则表⽰不可⽤。

⑤处显⽰选择的插件的相关信息⑥处是⼀个⼊⼝,可以跳转去安装JetBrains提供的插件。

⑦处⽤于跳转到从仓库中浏览并安装插件。

⑧处⽤于安转下载到本地的插件。

这⾥我们选择从“Browse Repositories”进⼊安装,进⼊后搜索“FindBugs”会显⽰如下界⾯,我们选择“FindBugs-IDEA”进⾏安装。

开源工具Findbugs使用总结

开源工具Findbugs使用总结

开源⼯具Findbugs使⽤总结⼀、代码检查法概念⽩盒测试分为静态测试和动态测试。

代码检查法是静态测试的⼀种,主要是由⼈⼯进⾏,充分发挥⼈的逻辑思维优势,也可以借助软件⼯具⾃动进⾏。

代码检查包括代码⾛查、桌⾯检查、代码审查等,主要检查代码和设计的⼀致性,代码对标准的遵循、可读性,代码的逻辑表达的正确性,代码结构的合理性等⽅⾯;可以发现违背程序编写标准的问题,程序中不安全、不明确和模糊的部分,找出程序中不可移植部分、违背程序编程风格的问题,包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容。

⼆、Findbugs⼯具介绍静态分析⼯具有很多,其中商业⼯具⽐较有名的有Klocwork,coverity,pc-lint,开源的有splint,Findbugs等。

以下主要介绍⼀下Findbugs⼯具。

Findbugs是⼀款Java静态代码分析⼯具,与其他静态分析⼯具(如Checkstyle和PMD)不同,Findbugs 不注重样式或者格式,它专注于寻找真正的缺陷或者潜在的性能问题,它可以帮助java⼯程师提⾼代码质量以及排除隐含的缺陷。

有了静态分析⼯具,就可以在不实际运⾏程序的情况对软件进⾏分析。

Findbugs运⽤Apache BCEL 库分析类⽂件(class⽂件)⽽不是源代码,将字节码与⼀组缺陷模式进⾏对⽐以发现可能的问题。

Findbugs 的检测器已增⾄300多条,被分为不同的类型,常见的类型如下:· 正确性(Correctness):这种归类下的问题在某种情况下会导致bug,⽐如错误的强制类型转换等。

· 最佳实践反例(Bad practice):这种类别下的代码违反了公认的最佳实践标准,⽐如某个类实现了equals⽅法但未实现hashCode⽅法等。

· 多线程正确性(Multithreaded correctness):关注于同步和多线程问题。

Eclipse 插件 FindBugs 使用手册

Eclipse 插件 FindBugs 使用手册

Eclipse 插件FindBugs 使用手册前言:本文介绍如何利用Eclipse 插件FindBugs 优化Java 代码。

本插件是本人在对系统进行代码优化的时候,向迟焕祺同事索取并学习使用的,现在把工具的一些使用方法与大家共享,并把FindBugs提供给大家!感谢迟哥提供良好资源供大家学习、使用!问题提出:当我们编写完代码,做完单元测试等各种测试后就提交正式运行,只能由运行的系统来检测我们代码是否有问题了,代码中隐藏的错误在系统运行的过程中被发现后,然后再来进行相应的修改,那么后期修改的代价就相当高了。

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

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

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

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

原文:FindBugs is a program to find bugs in Java programs. It looks for instances of "bug patterns" --- code instances that are likely to be errors.使用FindBugs 至少需要JDK1.4.0 以上版本,FindBugs是平台独立的,可以运行于GNU/Linux、Windows、MacOS X 等平台上。

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

获取FindBugs 最新版本:/projects/findbugs/files/FinBugs 介绍:/manual/Eclipse 插件links 文件夹方式配置:提示:直接的插件配置方式是使用Eclipse 的Update 方式更新,或者把新下载的插件PlugIn 放在原始的Eclipse 目录下去,这种方式会随着插件的增多而导致插件维护工作量的增加。

FindBugs安装及使用说明

FindBug安装及使用说明目录1.简介 (3)1.1说明 (3)1.2环境要求 (3)1.3注意事项 (3)2.FINDBUGS安装 (3)2.1在线安装 (3)2.2离线安装 (9)3.FINDBUGS使用 (9)3.1F IND B UGS操作 (10)3.2F IND B UGS常见故障模式 (11)3.2.1Cloneable Not Implemented Correctly (CN) (11)3.2.2Double Checked Locking (DC) (11)3.2.3Dropped Exception (DE) (12)3.2.4Suspicious Equals Comparison (EC) (12)3.2.5Bad Covariant Definition of Equals (Eq) (12)3.2.6Equal Objects Must Have Equal Hashcodes (HE) (13)3.2.7Static Field Modifiable By Untrusted Code (MS) (13)3.2.8Null Pointer Dereference (NP), Redundant Comparison to Null (RCN) (14)3.2.9Non-Short-Circuit Boolean Operator (NS) (14)3.2.10Open Stream (15)3.2.11Read Return Should Be Checked (RR) (15)3.2.12Return Value Should Be Checked (RV) (16)3.2.13Non-serializable Serializable class (SE) (16)3.2.14Uninitialized Read In Constructor (UR) (16)3.2.15Unconditional Wait (UW) (17)3.2.16Wait Not In Loop (Wa) (17)4.修订记录 (18)1.简介1.1说明FindBugs 是一个java bytecode静态分析工具,它可以帮助java工程师提高代码质量以及排除隐含的缺陷。

findbugs 用法

findbugs用法FindBugs是一款由加州大学伯克利分校的Java开发者团队开发的静态代码分析工具,主要用于发现Java代码中的潜在错误和漏洞。

本文将向您介绍FindBugs的基本用法,帮助您更好地利用这款工具提高代码质量。

一、FindBugs简介FindBugs是一款免费的开源工具,它通过分析Java代码的语法、数据流、异常处理等方面,发现潜在的错误和漏洞。

FindBugs可以帮助开发者发现一些不易被人工发现的错误,提高代码质量,减少软件缺陷。

二、安装FindBugs要使用FindBugs,您需要先将其安装到您的系统中。

FindBugs支持Windows、Linux和MacOSX等操作系统。

安装过程相对简单,您可以从FindBugs官方网站下载最新版本的FindBugs,并根据安装指南进行安装。

三、使用FindBugs进行代码分析安装完成后,您可以使用FindBugs对Java代码进行静态分析。

以下是使用FindBugs进行代码分析的基本步骤:1.打开FindBugs分析器界面,将要分析的Java代码文件上传到分析器中。

2.选择要进行静态分析的选项,如是否包含测试代码等。

3.等待分析器进行分析,生成报告。

4.查看分析报告,了解代码中的潜在错误和漏洞。

以下是一些使用FindBugs的常见用法示例:1.查找未使用的变量:FindBugs可以检测到未使用的变量,这可能是由于开发者疏忽或无意中留下的漏洞。

2.查找空指针引用:FindBugs可以检测到可能出现的空指针引用错误,这可能导致程序崩溃或出现不可预期的行为。

3.查找内存泄漏:FindBbugs可以检测到可能的内存泄漏问题,如对象引用未被释放等。

4.查找线程安全问题:FindBugs可以检测到线程安全问题,如并发修改共享数据等。

五、优化FindBugs结果使用FindBugs分析后,您可能会发现一些潜在的问题和漏洞。

对于这些问题和漏洞,您可以采取以下优化措施:1.修复错误:对于发现的错误和漏洞,您应该尽快修复它们,以确保代码的质量和稳定性。

Eclipse插件FindBugs安装使用说明

FindBugs 安装使用FindBugs是个专门用来发现Java代码中的Bug的Eclipse小插件,与Eclipse无缝结合,可以实现敲入代码、保存文件、编译时即时反馈给用户Bug信息,比Eclipse自带的Java Bug 管理功能要强。

FindBugs一共有三个版本,除过Eclipse插件板本外,还提供一个独立版本的Java程序(基于SWing)和一个Ant Task版本;下面介绍Eclipse的插件版。

一、安装打开MyEclipse 的help -> SoftWave Updates -> Find and Install如图:点击next在下图中,点击New Remote site,在弹出的窗口中输入Name:findBugs,URL:/eclipse点击ok然后按下图操作。

点击完成最后按提示安装。

二、配置在工程栏选中一个项目,按Alt + Enter 键三、使用1、对项目使用findBugs选中项目,如下图操作:点击Find Bugs后,findBugs会查找整个项目的bug。

之后,如图操作:在弹出的窗口,如图操作:最后,窗口会按bug的高低级别显示程序bug:2、在编写代码时使用findBugs编写代码时,findBugs会查找bug,并给有bug行一个爬虫logo标示,如下图:点击爬虫图标会显示具体的bug,如下图:Findbugs缺陷描述:Findbugs是一个静态分析工具,它检查类或者JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。

Findbugs自带检测器,其中有60余种Bad practice,80余种Correctness,1种Internationalization,12种Malicious code vulnerability,27种Multithreaded correctness,23种Performance,43种Dodgy。

Bad practice 坏的实践一些不好的实践,下面列举几个:HE:类定义了equals(),却没有hashCode();或类定义了equals(),却使用Object.hashCode();或类定义了hashCode(),却没有equals();或类定义了hashCode(),却使用Object.equals();类继承了equals(),却使用Object.hashCode()。

eclipse代码缺陷查找插件findbugs的使用

静态分析工具承诺无需开发人员费劲就能找出代码中已有的缺陷。

当然,如果有多年的编写经验,就会知道这些承诺并不是一定能兑现。

尽管如此,好的静态分析工具仍然是工具箱中的无价之宝。

在这个由两部分组成的系列文章的第一部分中,高级软件工程师Chris Grindstaff 分析了FindBugs 如何帮助提高代码质量以及排除隐含的缺陷。

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

出现伪问题时,开发人员要学会忽略工具的输出或者放弃它。

FindBugs 的设计者David Hovemeyer 和William Pugh 注意到了这个问题,并努力减少他们所报告的伪问题数量。

与其他静态分析工具不同,FindBugs 不注重样式或者格式,它试图只寻找真正的缺陷或者潜在的性能问题。

FindBugs 是什么?FindBugs 是一个静态分析工具,它检查类或者JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。

有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析。

不是通过分析类文件的形式或结构来确定程序的意图,而是通常使用Visitor 模式(请参阅参考资料)。

图 1 显示了分析一个匿名项目的结果(为防止可怕的犯罪,这里不给出它的名字):在FindBugs的GUI中,需要先选择待扫描的.class文件(FindBugs其实就是对编译后的class 进行扫描,藉以发现一些隐藏的bug。

)。

如果你拥有这些.class档对应的源文件,可把这些.java文件再选上,这样便可以从稍后得出的报告中快捷的定位到出问题的代码上面。

此外,还可以选上工程所使用的library,这样似乎可以帮助FindBugs做一些高阶的检查,藉以发现一些更深层的bug。

选定了以上各项后,便可以开始检测了。

检测的过程可能会花好几分钟,具体视工程的规模而定。

检测完毕可生成一份详细的报告,藉由这份报告,可以发现许多代码中间潜在的bug。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Findbugs的安装和使用1 、Findbugs 介绍
1.1 、Findbugs 简介
FindBugs 是一个静态分析工具,它检查类或者JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。

1.2 、适用人员
Java开发人员
1.3 、FindBugs能解决的问题
FindBugs能解决的问题,举例如下:
(1)代码的正确性检查――空指针例子
(2)代码的健壮性检查――静态类变量没有定义成Final
(3)多线程正确性检查――低效率
(4)性能问题检查――生成冗余的对象
(5)格式问题检查――比较分支的重复代码
2 、Eclipse与MyEclipse安装Findbugs 插件
2.1 概述
因为大家使用的IDE不一致,所以关于Findbugs插件的安装,将分为Eclipse(3.6以上),MyEclipse6.5,以及Myeclipse8.5 三个部分讲解。

又因为目前大家使用的MyEclipse版本较低,不能安装较高版本的findbugs插件,只能安装相应的最高版本。

2.2 、Eclipse在线安装
步骤一:如图,选择Install New Software
步骤二:如图,点击Add
步骤三:如图,
Name:Findbugs
Location: /eclipse
步骤四:如图,选中安装项,然后一直“Next”,等待安装完成
2.3 、Eclipse离线安装
把下面的文件解压后放入Eclipse的dropins目录下,再重启Eclipse
edu.umd.cs.findbugs.plugin.eclipse_2.0.3.20131122-15020.zip
2.4 、MyEclipse 6.5 安装Findbugs插件
把下面的文件解压后放入MyEclipse6.5的安装目录下的eclipse\plugins下,再重启MyEclipse
edu.umd.cs.findbugs.plugin.eclipse_2.0.0.20111220.zip
2.5 、MyEclipse 8.5 安装Findbugs插件
步骤一:将edu.umd.cs.findbugs.plugin.eclipse_2.0.2.20121204.zip文件解压后拷贝到任意目录下,例如D:/plugins目录下。

edu.umd.cs.findbugs.plugin.eclipse_2.0.2.20121204.zip
步骤二:进入MyEclipse安装目录下的
\configuration\org.eclipse.equinox.simpleconfigurator目录,修改文件,在最后一行加入:
edu.umd.cs.findbugs.plugin.eclipse,1.3.9.20090821,file:/D:/plugins/edu.umd.cs.findb ugs.plugin.eclipse_2.0.2.20121204,4,false
(注意黄色高亮部分的地址需要一致)
步骤三:重启MyEclipse
2.6 、验证安装是否成功
右击项目,出现如下图所示,则安装成功
3 、使用Findbugs
3.1 、执行findbugs
如图,右击需检查的工程,或者package,或者某个类,再点击Findbugs。

等待Findbugs执行完毕。

3.2 、查看结果
Findbugs执行完毕后,把视图Perspective切换到FindBugs模式,可以看到下图所示:Scariest是bug最严重等级,往下依次减弱。

然而较低版本的Findbugs的检查结果的表示是不一样的,例如MyEclipse8.5的FindBugs的检查结果会如下图所示。

但是,这只是展现出来的方式不一样,检查出来的bug数量以及bug产生的原因,是一样的。

3.3 、详细查看bug
每个bug都会标明原因,双击后会跳到代码具体位置
3.4 、配置检测器
Findbugs匹配bug的模式(即检测器),可以根据要求调整。

可以右击项目,进入properties,如下图所示。

关于每种模式的解释,请参考文档《详解FindBugs 的各项检测器.pdf》
详解FindBugs的各项检测器.pdf。

相关文档
最新文档