`
sbpya
  • 浏览: 610080 次
  • 性别: Icon_minigender_1
  • 来自: 杭州,长沙
社区版块
存档分类
最新评论

转findbugs的使用

阅读更多

官方网站:http://findbugs.sourceforge.net/
Eclipse插件:http://findbugs.sourceforge.net/downloads.html

  插件管理技巧

  提示:新下载的插件PlugIn一定不要都放在原始的Eclipse目录下去。

  1. 前提是你已经安装好了Eclipse工具了,比如安装在E:\OpenSource\Eclipse\目录下,以下这个目录以%ECLIPSE_HOME%来进行表示;
  2. 此时默认的插件是在%ECLIPSE_HOME%\plugins目录中的;
  3. 在%ECLIPSE_HOME%下建立一个PlugInsNew的目录;
    比如:E:\OpenSource\Eclipse\PlugInsNew\
  4. 你下载了个新的插件,比如叫做:XYZ
     那么就在%ECLIPSE_HOME%\PlugInsNew\目录下建立XYZ目录,目录里面是eclipse目录,eclipse目录包含有features与plugins两个子目录;结构如下图所示:

      
  5. 把下载的新插件的文件放在以下相应目录中
    %ECLIPSE_HOME%\PlugInsNew\XYZ\eclipse\features
    %ECLIPSE_HOME%\PlugInsNew\ XYZ\eclipse\plugins
  6. 建立相关的.link的文件
    然后在%ECLIPSE_HOME%\links目录里建立一个XYZ.link的文件
    内容如是:path=E:/OpenSource/Eclipse/PlugInsNew/XYZ就一行这样的路径指示而已。
    当然,采用相对路径来表示可能更直观一些,方便进行文件整体移动和小组全部成员的共享命名用,省得移动后要改动Link文件里的绝对路径而费心费力。直接拷贝过去就可以使用。
    即XYZ.link文件的内容如是:path=../PlugInsNew/XYZ
    这样,如果你下载了多个插件就可以如法炮制建立多个Link文件,想加载哪个插件就把哪个插件的Link文件放到%ECLIPSE_HOME%\links的目录中即可,使用与管理都很方便,建议千万不要放在默认的安装目录中;
    如果你的%ECLIPSE_HOME%与此不同,请修改XYZ.link文件里的路径
  7. 删除,关闭Eclipse
    删除%ECLIPSE_HOME%\links\XYZ.link文件即可
    删除%ECLIPSE_HOME%\PlugInsNew\XYZ整个目录及文件
  8. 重新启动Eclipse即可

  使用

  重新启动Eclipse后,在Help => About Eclipse SDK => Plug-in Details你可以看到由“FindBugs Project”提供的“FindBugs Plug-in”版本0.0.17插件,如下图所示:

  

  FindBugs的使用方法

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

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

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

  目前FindBugs最高版本0.9.4,不过更新速度很快的,你应当经常上去看看是否有新版本发布。Eclipse plugin for FindBugs最高版本0.0.17。

  系统要求

  使用FindBugs至少需要JDK1.4.0以上版本,FindBugs是平台独立的,可以运行于GNU/Linux、Windows、MacOS X 等平台上。

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

  FindBugs独立运行和与Ant结合的详细操作就不介绍了,可以看官方的文档http://findbugs.sourceforge.net/manual/

  独立运行的效果图如下:

  

  本文主要介绍在Eclipse中使用的情况

  打开Bug Details视图

  Windows => Show View => Other… => FindBugs => BugDetails

  

  在Package Explorer或Navigator视图中,选中你的Java项目,右键,可以看到“Find Bugs”菜单项,子菜单项里有“Find Bugs”和“Clear Bug Markers”两项内容,如下图所示:

  

  我们建立一个简单的测试文件Test.java 内容如下:

public class Test { private String[] name; public String[] getName() { return name; } public void setName(String[] name) { this.name = name; } } 


  我们点中“Find Bugs”,运行时会出现如下进度框:

  运行结束后可以在Problems中看到增加了如下的警告信息内容

  FindBugs运行后的警告信息内容不仅在Problems视图中显示,而且将标记在源代码标记框中,在源代码编辑器中我们可以看到警告标识,如下图:

  当光标指向你的警告信息的代码上面时,就会有相应的错误提示信息,与Eclipse本身的错误或警告信息提示类似。

  选中Problems视图里出现的相应问题,就会在代码编辑器里切换到相应的代码上去,方便根据相应的提示信息进行代码的修改。

  

  在Problems视图里,选中相应的问题条目,右键,在弹出的菜单中,可以看到“Show Bug Details”,如下图所示:

  

  点中它,会切换到Bug Details视图上去,显示更加详细的提示信息。

  当然,在代码编辑窗口中,点击带有警告提示信息的图标时,也会自动切换到Bud Details窗口去,查看详细的警告信息,如下图所示。

  

  根据这里详细的信息,你可以得到FindBugs为什么会对你的代码报警告信息,及相应的处理办法,根据它的提示,你可以快速方便地进行代码修改。

  

  根据提示,我们将代码修改成如下,再运行就不会报有警告信息了。

public class Test { private String[] name; public String[] getName() {     String[] temp = name; return temp; } public void setName(String[] name) {     String[] temp = name; this.name = temp; } } 

  配置FindBugs

  选择你的项目,右键 => Properties => FindBugs =>

  

  可以配置的信息包括如上图所示的四个选项的相关设置:

  1. Run FindBugs Automatically开关

    当此项选中后,FindBugs将会在你修改Java类时自动运行,如你设置了Eclipse自动编译开关后,当你修改完Java文件保存,FindBugs就会运行,并将相应的信息显示出来。

    当此项没有选中,你只能每次在需要的时候自己去运行FindBugs来检查你的代码。

  2. Minimum priority to report选择项

    这个选择项是让你选择哪个级别的信息进行显示,有Low、Medium、High三个选择项可以选择,很类似于Log4J的级别设置啦。 比如:

    你选择了High选择项,那么只有是High级别的提示信息才会被显示。

    你选择了Medium选择项,那么只有是Medium和High级别的提示信息才会被显示。

    你选择了Low选择项,那么所有级别的提示信息都会被显示。

  3. Enable bug categories选择项

    在这里是一些显示Bug分类的选择:

    Correctness关于代码正确性相关方面的

    Performance关于代码性能相关方面的

    Internationalization关于代码国际化相关方面的

    Multithreaded correctness关于代码多线程正确性相关方面的

    Style关于代码样式相关方面的

    Malicious code vulnerability关于恶意破坏代码相关方面的

    比如:如果你把Style的检查框去掉不选择中它,那么与Style分类相关的警告信息就不会显示了。其它的类似。

  4. Select bug patterns to check for选择项

    在这里你可以选择所要进行检查的相关的Bug Pattern条目

    可以从Bug codes、Detector name、Detector description中看到相应的是要检查哪些方面的内容,你可以根据需要选择或去掉相应的 检查条件。

  总结

  此插件的功能很不错,可以帮助我们提升Java代码的编写能力,写出更加安全可靠的代码。建议使用或加在Ant里进行持续构建。

  现在,你可以马上拿出你已经开发的一个项目,检查一下你的代码有没有问题了

分享到:
评论

相关推荐

    findbugs 1.3.9 findbugs 1.3.9

    3. **可扩展性**:FindBugs支持插件机制,用户可以自定义规则或使用社区提供的扩展,以适应特定的项目需求。 4. **集成友好**:1.3.9版本提供了对Eclipse的集成,通过edu.umd.cs.findbugs.plugin.eclipse_1.3.9....

    Findbugs使用简介

    《Findbugs使用简介》 Findbugs是一款开源的静态代码分析工具,主要针对Java代码进行分析,旨在检测出可能存在的错误和潜在的问题。它通过分析字节码而非源代码,能够发现那些编译器无法捕捉的运行时错误和设计缺陷...

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

    **Findbugs在Ant下的配置方法** FindBugs是一款开源的静态代码分析工具,主要用于检测Java代码中的潜在错误、坏味道和安全漏洞。...正确配置和使用FindBugs,能帮助你尽早发现并修复潜在的错误,减少后期维护的成本。

    findbugs.jar+findbugs-ant.jar

    "findbugs"标签表示这个话题与FindBugs工具相关,而"eclipse"标签则意味着讨论的是在Eclipse环境下使用FindBugs。通过这两个标签,我们可以理解这是一个关于在Eclipse集成环境中使用FindBugs进行静态代码分析,并...

    findbugs代码检查工具

    下面将详细介绍FindBugs的主要功能、工作原理以及如何使用它来优化你的项目。 1. **FindBugs的功能** - **错误检测**:FindBugs能够检测出多种类型的错误,包括空指针异常、数组越界、并发问题、资源泄露、无效的...

    ecplise插件findbugs2.0

    在项目中使用 FindBugs 很简单,只需右键点击项目,选择 "FindBugs" -> "Analyze Project"。分析完成后,Eclipse 会生成一个包含错误和警告的列表。每个问题都有详细的描述、严重程度以及可能的修复建议。 - **错误...

    findbugs-3.0.1.zip

    FindBugs首先将Java字节码转换为内部数据结构,然后使用一组复杂的静态分析算法扫描这些数据结构,寻找可能的问题模式。由于是静态分析,FindBugs可以在不运行代码的情况下进行检查,避免了因运行时环境差异导致的...

    findbugs错误类型的中文解释

    findbugs错误类型的中文解释 findbugs 错误类型 中文解释 bug type

    FindBugs1.0.1.rar

    9. **过时的API使用**:如果使用了已废弃的Android API,FindBugs会提醒开发者更新至最新版本。 10. **线程不安全的集合类使用**:在多线程环境下,FindBugs会指出对非线程安全集合类的不当使用。 安装FindBugs...

    sonar-findbugs插件源码

    2. **FindBugs API使用**:`sonar-findbugs`插件会调用FindBugs的API进行代码分析。这包括设置分析参数、解析Java字节码、执行FindBugs分析和解析结果等步骤。通过源码,我们可以了解如何有效地集成FindBugs到其他...

    FindBugs-IDEA-1.0.1插件

    这款插件是基于FindBugs项目,一个广泛使用的开源工具,能够检测Java代码中的常见问题和可能的bug。 FindBugs插件的核心功能包括: 1. **错误检测**:FindBugs可以扫描Java源代码,通过一系列复杂的算法和规则,找...

    findbugs源码包

    在使用findbugs-3.0.1压缩包时,首先需要解压文件,然后通过命令行或者集成到IDE(如Eclipse或IntelliJ IDEA)中进行操作。在命令行环境下,可以使用findbugs工具对指定的.class文件或整个项目进行分析,并生成详细...

    findbugs for idea

    FindBugs使用了一套复杂的规则和模式匹配算法,可以检测出超过350种潜在的bug。其设计理念是帮助开发者在运行代码之前发现并修复问题,从而减少调试时间和提高软件的可靠性。 二、FindBugs for IDEA安装与配置 1. ...

    findbugs 3.0.2 2016-8月最新版本

    8. **设计问题**:FindBugs还能检测出可能的设计缺陷,如单例模式实现不当,过度使用final关键字,以及不推荐使用的API。 安装完成后,FindBugs会在Eclipse的problems视图中显示检测结果,每条警告都会提供详细的...

    findbugs插件eclipse

    Eclipse是一个广泛使用的开源IDE,拥有丰富的插件生态系统,FindBugs就是其中之一,它的目标是帮助开发者在代码执行之前就找出可能存在的bug,防止缺陷进入生产环境。 FindBugs插件的工作原理是通过分析字节码来...

    findbugs-1.3.9 java代码检查工具以及eclipse插件

    使用FindBugs不仅可以提高代码质量,还可以减少调试时间,因为很多问题在编译阶段就能被发现。此外,FindBugs支持与其他持续集成工具的集成,如Jenkins,可以在代码提交时自动进行检查,确保团队代码的质量标准。 ...

    FindBugs的BUG分类

    FindBugs的BUG分类 FindBugs是一个静态代码分析工具,旨在检测Java代码中的错误和坏的实践。根据FindBugs的分类,BUG可以分为以下几类: 一、Bad practice 坏的实践 Bad practice是指一些不好的实践,可能会导致...

    Findbugs

    通过持续使用FindBugs,开发者不仅可以提升代码质量,还可以减少调试时间和维护成本。尽管FindBugs主要针对Java,但类似的工具也适用于其他编程语言,如C++的Coverity和Python的Pylint,它们都是提升软件质量的重要...

    edu.umd.cs.findbugs.plugin.eclipse_1.0.0

    《FindBugs插件在Eclipse中的应用及详解》 FindBugs是一款强大的静态代码分析工具,由...通过安装和使用edu.umd.cs.findbugs.plugin.eclipse_1.0.0,开发者可以充分利用FindBugs的强大功能,让代码更加健壮、高效。

    ant daily build 学习五(findbugs多文件合并细节问题)

    在Ant Daily Build的学习过程中,我们经常会遇到各种工具的使用,比如FindBugs,它是一款用于静态代码分析的工具,能够帮助开发者找出潜在的错误和不良编程习惯。本篇将聚焦于FindBugs在处理多个文件合并时的具体...

Global site tag (gtag.js) - Google Analytics