`
plkong
  • 浏览: 177488 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

findbugs

 
阅读更多

关于findbugs收集的网络资料信息

 

http://blog.csdn.net/lywybo/article/details/5335748

http://blog.csdn.net/z3h/article/details/1669311

http://findbugs.sourceforge.net/downloads.html

 

1.1       准备

下载 findbugs : http://sourceforge.net/projects/findbugs/files/findbugs/1.3.9/findbugs-1.3.9.zip/download

 

修改 build.xml , 去除所有的 validate 依赖。执行 ant 编译。

eclipse 引入 findbugs 工程

 

1.2       实现类

直接在 findbugs 目录中增加类

 

package edu.umd.cs.findbugs.detect;

import org.apache.bcel.classfile.Code;

import edu.umd.cs.findbugs.BugInstance;

import edu.umd.cs.findbugs.BugReporter;

import edu.umd.cs.findbugs.bcel.OpcodeStackDetector;

 

/**

  * @author bo

  * 这个规则 类用于判断 System.out System.error 这种情况

  */

public class ForbiddenSystemClass extends OpcodeStackDetector {

  BugReporter bugReporter ;

 

  public ForbiddenSystemClass(BugReporter bugReporter) {

  this . bugReporter = bugReporter;

  }

 

  /**

  * visit 方法,在每次进入字节码方法的时候调用

  * 在每次进入新方法的时候清空标志位

  */

  @Override

  public void visit (Code obj) {

  super .visit(obj);

  }

 

  /**

  * 每扫描一条字节码就会进入 sawOpcode 方法

  *

  * @param seen  字节码的枚举值

  */

  @Override

  public void sawOpcode ( int seen) {

  if (seen == GETSTATIC ) {

   if (getClassConstantOperand().equals( "java/lang/System" )

           && (getNameConstantOperand().equals( "out" ) || getNameConstantOperand().equals( "error" ))) {

    BugInstance bug = new BugInstance( this , "ALP_SYSTEMCLASS" , NORMAL_PRIORITY ).addClassAndMethod( this )

            .addSourceLine( this , getPC());

    bug.addInt(getPC());

    bugReporter .reportBug(bug);

   }

  }

  }

}

1.3       修改 etc 目录配置文件 findbugs.xml message.xml

不支持中文注释。

findbugs.xml 增加内容。

< Detector class = "edu.umd.cs.findbugs.detect.ForbiddenSystemClass"  

   speed = "fast"

     reports = "ALP_SYSTEMCLASS"

     hidden = "false" />

 

< BugPattern abbrev = "LIANGJZFORBIDDENSYSTEMCALSS" type = "ALP_SYSTEMCLASS" category = "EXPERIMENTAL"   />

 

 

Message.xml 增加:

 

< Detector class = "edu.umd.cs.findbugs.detect.ForbiddenSystemClass" >

   < Details >

    <![CDATA[

    <p>category:detector find System.out/System.error

    <p>please use log4j

    ]]>

   </ Details >

  </ Detector >

 

< BugPattern type = "ALP_SYSTEMCLASS" >

    < ShortDescription > short desc:System.out/error </ ShortDescription >

    < LongDescription > class={0},method {1}long desc:System.out,please use log4j </ LongDescription >

    < Details >

  <![CDATA[

    <p>detail info see log4j document</p>

  ]]>

    </ Details >

  </ BugPattern >

 

 

 

1.4       findbugs 图形化界面测试

点击 bin/finbugs.bat ,打开扫描的 .class 目录。看到扫描带 System.out 或者 System.error .class 放到 experimental 类错误时,验证成功。

 

 

1.5       替换 eclipse findbugs-plugin.jar 文件

winrar 打开

D:\devtools\eclipse_3.5.1\plugins\edu.umd.cs.findbugs.plugin.eclipse_1.3.9.20090821\findbugs-plugin.jar message.xml,findbugs.xml,z 加入二进制的 edu.umd.cs.findbugs.detect .ForbiddenSystemClass

 

重启 elipse, 还需要确保 experimental 类的错误能在 findbugs 窗口展现: windows->preferences->java->findbugs->reporter configuration 上的 experimental 选项勾上。

 

 

 

  执行 findbugs 扫描 .class,看到结果出现..

分享到:
评论

相关推荐

    findbugs压缩包+findbugs.jar+findbugs-ant.jar

    标题中的"findbugs压缩包+findbugs.jar+findbugs-ant.jar"指的是该压缩文件内包含FindBugs的主要库文件`findbugs.jar`,这是执行FindBugs分析的核心组件,它包含了各种检测规则和算法。另外,`findbugs-ant.jar`则是...

    findbugs-3.0.1.zip

    《FindBugs 3.0.1:Java代码静态分析工具深度解析》 FindBugs是一款广受欢迎的开源工具,用于检测Java代码中的潜在错误和不良编程习惯。在"findbugs-3.0.1.zip"这个压缩包中,包含了FindBugs 3.0.1版本的详细资料和...

    findbugs 1.3.9 findbugs 1.3.9

    《深入理解FindBugs 1.3.9:静态代码分析的强大工具》 FindBugs是一款广受欢迎的静态代码分析工具,它的版本1.3.9在软件开发领域具有重要的地位。这款开源工具的主要功能是检测Java代码中的潜在错误,帮助开发者在...

    findbugs-annotations-1.3.9-1-API文档-中文版.zip

    赠送jar包:findbugs-annotations-1.3.9-1.jar; 赠送原API文档:findbugs-annotations-1.3.9-1-javadoc.jar; 赠送源代码:findbugs-annotations-1.3.9-1-sources.jar; 赠送Maven依赖信息文件:findbugs-...

    网络上搜集的Findbugs在Ant下的配置方法

    **Findbugs在Ant下的配置方法** FindBugs是一款开源的静态代码分析工具,主要用于检测Java代码中的潜在错误、坏味道和安全漏洞。它通过分析字节码而非源代码,能够发现许多编译器无法捕获的问题。在Ant构建环境中...

    findbugs最新源代码20081008版本的

    《深入理解FindBugs:基于20081008源码的探索》 FindBugs是一款著名的静态代码分析工具,它通过扫描Java字节码来检测潜在的错误和不良编程习惯,被誉为“程序员的无声守护者”。2008年10月08日的版本是FindBugs发展...

    findbugs工具测试java实验报告

    【findbugs工具测试Java实验报告】 在软件开发过程中,代码质量是至关重要的,因为它直接影响到程序的稳定性、可维护性和性能。为了确保代码的质量,开发者通常会采用各种静态代码分析工具,其中FindBugs就是一款...

    findbugs.jar+findbugs-ant.jar

    FindBugs是一款非常知名的静态代码分析工具,它主要用于在Java代码中发现潜在的错误和缺陷。Eclipse是一款广泛使用的集成开发环境(IDE),对于Java开发者来说尤其重要。将FindBugs集成到Eclipse中,可以帮助开发者...

    findbugs插件使用文档

    `FindBugs`是一款强大的静态代码分析工具,主要用于检测Java代码中的潜在错误和不良实践。它通过分析字节码来找出可能存在的问题,而无需实际运行程序。在Maven项目中,我们可以使用`findbugs-maven-plugin`这个...

    IDEA插件-FindBugs-IDEA-1.0.1.rar

    IDEA插件-FindBugs-IDEA-1.0.1,威哥开发使用,决定可以用。自行导入IDEA。Findbugs是一个静态分析工具,它检查类或者JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。Findbugs自带检测器,其中有60余种...

    FindBugs规则(中文版111).doc

    FindBugs是一款静态代码分析工具,它用于检测Java代码中的潜在缺陷。中文版的FindBugs规则文档提供了关于代码质量的多个方面的指导,包括安全、实验性等方面的问题。以下是这些规则的详细解释: 1. Dm: Hardcoded ...

    findbugs 最新eclipse插件

    **findbugs最新Eclipse插件**是用于静态代码分析的工具,它可以帮助开发者在编码阶段发现潜在的错误和不良编程习惯。FindBugs是开源项目,由University of Maryland开发并维护,广泛应用于Java应用程序的质量保证...

    findbugs最新版本 1.3.8

    FindBugs是一款开源的静态代码分析工具,专用于检测Java应用程序中的潜在错误和不良编程习惯。在Java开发中,FindBugs能够帮助开发者在代码执行之前发现潜在的问题,从而提高软件质量和可维护性。1.3.8是FindBugs的...

    findbugs代码检查工具

    FindBugs是一款强大的静态代码分析工具,主要用于检测Java代码中的潜在错误和不良编程习惯。它通过对编译后的字节码进行分析,而不需要实际运行代码,就能找出可能存在的问题,从而帮助开发者提升代码质量,减少运行...

    FindBugs安装及配置使用说明

    FindBugs是一款强大的Java字节码静态分析工具,它能够帮助开发者在代码执行前发现潜在的缺陷和质量问题。通过检查类文件和JAR包,FindBugs与一系列预定义的缺陷模式进行匹配,从而找出可能存在的问题。这种静态分析...

    eclipse中findbugs插件

    FindBugs插件是将FindBugs工具集成到Eclipse中的一个扩展,使得用户在开发过程中可以方便地检查代码问题。 安装FindBugs插件的过程相对简单。首先,你需要下载`edu.umd.cs.findbugs.plugin.eclipse_3.0.1.20150306-...

    findbugs myeclipse2017可用插件

    FindBugs是一款强大的静态代码分析工具,主要用于检测Java应用程序中的潜在错误、不良编程习惯和可能的安全漏洞。在MyEclipse 2017这样的集成开发环境中(IDE)集成FindBugs插件,可以帮助开发者在编码阶段就发现并...

    findbugs-1.3.9.rar

    《FindBugs:Java代码静态分析工具的深度解析》 FindBugs是一款开源的Java代码静态分析工具,其主要功能是检测源代码中可能存在的错误和潜在问题。这个工具通过扫描字节码来查找可能的问题,而不是运行程序,因此...

    ecplise插件findbugs2.0

    【FindBugs 2.0 插件详解】 FindBugs 是一款强大的静态代码分析工具,主要用于检测 Java 应用程序中的潜在错误和缺陷。在 2.0 版本中,FindBugs 支持 JDK 1.6,并且能够与 Eclipse 3.2 及以上版本无缝集成,为...

Global site tag (gtag.js) - Google Analytics