Eclipse的FindBugs插件
| Eclipse的FindBugs插件 |
|
问题提出: 当我们编写完代码,做完单元测试等各种测试后就提交正式运行,只能由运行的系统来检测我们代码是否有问题了,代码中隐藏的错误在系统运行的过程中被发现后,然后再来进行相应的修改,那么后期修改的代价就相当高了。 解决方法: 现在有很多Java代码分析工具,FindBugs中开源项目当中的一个,它可以帮你找到代码中隐藏的一些错误,提升你的代码能力与系统安全可靠性。 安装 JDK:1.5.0 从http://java.sun.com上去下载安装 Eclipse:3.1.1 从http://www.eclipse.org 上去下载解压 FindBugs:0.9.4 从http://findbugs.sourceforge.net/ 官方的文档 http://findbugs.sourceforge.net/manual/ Eclipse plugin for FindBugs version 0.0.17 从 http://findbugs.sourceforge.net/downloads.html 下载 插件管理技巧 提示:新下载的插件PlugIn一定不要都放在原始的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/ 独立运行的效果图如下:
打开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 =>
可以配置的信息包括如上图所示的四个选项的相关设置:
总结 此插件的功能很不错,可以帮助我们提升Java代码的编写能力,写出更加安全可靠的代码。建议使用或加在Ant里进行持续构建。现在,你可以马上拿出你已经开发的一个项目,检查一下你的代码有没有问题了。 (责任编辑:城尘) |
Eclipse的FindBugs插件的更多相关文章
- 笔记:eclipse的findbugs插件安装成功却不显示
关键字:findbugs eclipse的findbugs插件安装成功却不显示的原因有: 1.插件版本太高,低版本的eclipse不兼容 2.也有可能是JDK版本低 findbugs安装方法: 1.在 ...
- 解决低版本Eclipse安装Findbugs插件无法显示问题
问题描述 Eclipse安装Findbugs,显示安装成功,但是重启Eclipse在[Window]-[show view]-[other]中没有显示 原因 Eclipse版本太低,新版的Findbu ...
- Eclipse中FindBugs插件的应用
在以前的一个开发现场里,经常会收到客户的代码review指摘. 觉得有点神奇是,给客户的文件是编译后的*.class打成war包,客户那边却能指摘出代码中的缺陷bug,而且精确到代码的某一行. 通过* ...
- Eclipse 安装FindBugs插件
FindBugs 是由马里兰大学提供的一款开源 Java静态代码分析工具.FindBugs通过检查类文件或 JAR文件,将字节码与一组缺陷模式进行对比从而发现代码缺陷,完成静态代码分析.FindBug ...
- 两种方法轻松搞定-- Eclipse 安装FindBugs插件
1安装:首先到官方网站下载最新版本FindBugs http://findbugs.sourceforge.net/downloads.html 将 edu.umd.c ...
- Eclipse:使用findBugs预先检测错误
FindBugs是用于Java的另一种静态分析工具,它在某些方面与Checkstyle和PMD类似,但是侧重点不同.FindBugs不关心格式或编码标准,对最佳实践也不太感兴趣:事实上,它专注于检查潜 ...
- findbugs插件使用
本文以idea的插件举例子 介绍 Findbugs是一个静态分析工具,它检查类或者JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题. idea安装 自此,插件安装完毕,需要重启idea才生 ...
- Eclipse安装完findbugs插件后,SVN插件不可用有关问题解决
Eclipse安装完findbugs插件后,SVN插件不可用问题解决: 安装findbugs插件后,SVN插件就消失了.后来从网上查到解决方案:eclipse/configuration目录下的org ...
- Eclipse FindBugs插件
在线安装: Update Site:http://findbugs.cs.umd.edu/eclipse 本地安装: 1.首先从findbugs网站下载插件:http://findbugs.sourc ...
随机推荐
- Eclipse 离线安装ADT
由于小猪的Eclipse中ADT版本过低无法打开Android项目了,所以要更新ADT(Android Develop Tools),但是在国内由于谷歌与本国微妙的关系想自动安装总是卡在某个点上. 所 ...
- 50款强力jquey,js 插件推荐
http://www.cnblogs.com/xiaoyao2011/category/327551.html
- 那些年因为粗心导致的外链css无效
css文件三种引用的三种方式: 1.外链: <link rel= "stylesheet" href=""> 注:如果使用外链式绝对不可以忘记 re ...
- Spring Security (一)
一.pom.xml <!-- spring security --> <dependency> <groupId>org.springframework.secur ...
- 转-squid介绍及其简单配置
本文原始出处:http://linuxme.blog.51cto.com/1850814/372960 1.Squid是什么? Squid中文权威指南:http://zyan.cc/book/squi ...
- 《Pro Express.js》学习笔记——Express服务启动常规七步
Express服务启动常规七步 1. 引用模块 var express=require('express'), compression=require('compression'), bo ...
- equals和“==”
Integer a = new Integer("3"); Integer b = new Integer(3); System.out.println(a==b); System ...
- imx6sl 调试记录
公板芯片型号:MCIMX6L8DVN10AB 我的板子芯片型号:MCIMX6L2EVN10AB no GPU ,no EPDC 调板子时一定要注意,首先要搞清楚硬件芯片的具体差异,然后去nxp的官网找 ...
- 人工智能交互集成在线语音合成能力的Tips
在线语音合成就是在联网的场景下将文字转换成声音,实现机器向人的声音交互.这个概念应该是比较好理解的,下面就结合官网的Android在线合成的Demo讲解一下合成的流程以及大家经常遇到的一些问题. 到官 ...
- 关于lambda表达式的一些学习——基于谓词筛选值序列
今天看了一些关于lambda表达式的知识,然后对于Func<T,TResult>泛型委托不太熟悉,便查了查相关资料,又引出来了基于谓词筛选值序列这个对我来说的新鲜知识点,于是去查MSDN, ...









