已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用Eclipse自带插件创建findbugs的检测器1.准备工作1.1.为Eclipse安装插件插件1:ByteCode下载地址:http:/andrei.gmxhome.de/eclipse/用法:在Eclipse菜单栏上单击windows-show view-other-Java-Bytecode即可打开Bytecode窗口,方便查看当前文件的字节码,效果如图1所示。图1插件2:Findbugs下载地址:/eclipse用法:在Eclipse菜单栏上单击windows-show view-other-Findbugs-Bug Explorer即可打开Bug Explorer窗口,进入Findbugs浏览状态,效果如图2所示。图21.2.以下操作需要用的软件(可选)为了操作方便,建议使用winRAR用来打开jar文件;使用Notepad+打开xml文件2.创建自己的Findbugs检测器2.1.编写自定义的检测器Detector项目中需要引入Findbugs的jar文件:findbugs.jar自定义的检测器需要继承OpcodeStackDetector,重写其sawOpcode方法。下面这个检查器Detector用来查找项目中有没有System.out和System.error情况出现。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 判断System.out和System.error这种情况 */public class ForbiddenSystemOutClass extends OpcodeStackDetector BugReporter bugReporter;public ForbiddenSystemOutClass(BugReporter bugReporter) this.bugReporter = bugReporter;/* * visit方法,在每次进入字节码方法的时候调用 在每次进入新方法的时候清空标志位 */Overridepublic void visit(Code obj) super.visit(obj);/* * 每扫描一条字节码就会进入sawOpcode方法 * * param seen 字节码的枚举值 */Overridepublic void sawOpcode(int seen) if (seen = GETSTATIC) if (getClassConstantOperand().equals(java/lang/System)/ get class mapping& (getNameConstantOperand().equals(out) / get static field mapping| getNameConstantOperand().equals(err) BugInstance bug = new BugInstance(this, CHECK_SYSTEMCLASS,NORMAL_PRIORITY).addClassAndMethod(this).addSourceLine(this, getPC();bug.addInt(getPC();bugReporter.reportBug(bug);文件1:自定义检测器ForbiddenSystemOutClass.java接下来找到Eclipse编译的ForbiddenSystemOutClass.class文件,一般在项目的lib目录里可以找到。将其放入findbugs-plugin.jar文件中对应的目录下。2.2.修改findbugs.xml文件找到Eclipse插件安装文件夹中findbugs-plugin.jar所在的文件夹,我的文件夹是F:eclipsepluginsedu.umd.cs.findbugs.plugin.eclipse_0111221双击打开findbugs-plugin.jar文件,找到其中的findbugs.xml和messages.xml两个文件,如图3所示。双击打开findbugs.xml,你可以修改原有的文件,也可以替换原有的文件为自己写的findbugs.xml。图3主要有两点:1.BugPattern 注意Experimental的大小写2.Detector. 文件2:findbugs.xml2.3.修改messages.xml文件主要有三点:1.BugPattern 注意Experimental的大小写2.Detector. 3.BugCode Default FindBugs plugin !CDATAThis plugin contains all of the standard FindBugs detectors. !CDATA Checks for classes used System class. System.out or System.err used checks method.Changes to logger if needed. !CDATAsystem class used. System class used文件3:messages.xml3.运行放置好这三个文件,重启Eclipse,在需要检测的文件上单击右键,选择findbugs,如图4所示。图4 运行findbugs运行效果如图5所示:图4 运行效果参考资料1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年危险化学品经营单位安全管理人员安全知识培训考试题库及答案
- 癫痫性精神病的治疗及护理
- 青风内障的护理课件
- 偏侧抽搐偏瘫综合征护理课件
- 胎-母输血新生儿的护理措施
- 肩袖自发性破裂个案护理
- 信息安全与管理课件
- 高考地理一轮复习课件陆地水体类型
- 2025年企业三会案例题库及答案
- 2025年二升三的奥数题库及答案
- 2025年时事政治必考题库附参考答案
- 临时用电作业安全培训
- 2025年中国加固计算机行业市场全景分析及前景机遇研判报告
- 健康管理职业导论教学课件
- DBJT15-211-2021 回弹法检测泵送混凝土抗压强度技术规程
- 医院感染工作课件
- 日本孟盆兰节介绍
- 中国人民银行数字货币研究所2024年度公开招聘工作人员笔试备考题库附答案详解
- 2025年国才考试试题及答案中级
- 2025年车辆营运考试题库
- 拒绝课间打闹班会课件
评论
0/150
提交评论