博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
findBugs 快速开始
阅读量:5874 次
发布时间:2019-06-19

本文共 3753 字,大约阅读时间需要 12 分钟。

hot3.png

1.快速入门

如果您在Windows系统上运行FindBugs,请双击该文件%FINDBUGS_HOME%\lib\findbugs.jar以启动FindBugs GUI。

在Unix,Linux或Mac OS X系统上,运行该$FINDBUGS_HOME/bin/findbugs 脚本或运行该命令

java -jar $FINDBUGS_HOME/lib/findbugs.jar

运行FindBugs GUI。

有关如何使用的信息 请参阅 GUI。

2.执行FindBugs

本节介绍如何调用FindBugs程序。调用FindBugs有两种方法:直接或使用包装器脚本。

2.1。直接调用FindBugs

运行FindBugs的首选方法是直接 $FINDBUGS_HOME/lib/findbugs.jar使用 JVM(java)可执行文件的-jar命令行开关执行。(1.3.5之前的FindBugs版本需要一个包装脚本来调用FindBugs。)

直接 调用FindBugs的一般语法如下:

java [JVM arguments]-jar $FINDBUGS_HOME/lib/findbugs.jaroptions...

2.1.1。选择用户界面

第一个命令行选项选择要执行的FindBugs用户界面。可能的值是:

  • -gui:运行图形用户界面(GUI)

  • -textui:运行命令行用户界面

  • -version:显示 FindBugs版本号

  • -help:显示 FindBugs命令行用户界面的 帮助信息

  • -gui1:执行原始(过时的) FindBugs图形用户界面

2.1.2。Java虚拟机(JVM)参数

调用FindBugs时,几个Java虚拟机参数很有用 。

将最大Java堆大小设置为NN 兆字节。 FindBugs通常需要大量的内存。对于一个非常大的项目,使用1500兆字节并不罕见。

-Xmx NNm

-D name=value

设置一个Java系统属性。例如,您可以使用参数-Duser.language = ja以日语显示GUI消息。

2.2。使用包装脚本调用FindBugs

运行FindBugs的另一种方式是使用包装脚本。

在类Unix系统上,使用以下命令来调用包装脚本:

$ $FINDBUGS_HOME/斌/ FindBugs的 options...

在Windows系统上,调用包装脚本的命令是

C:\My Directory>%FINDBUGS_HOME%\ BIN \ findbugs.bat options...

在类Unix和Windows系统上,只需将$FINDBUGS_HOME/bin 目录添加到PATH环境变量中,然后使用findbugs命令调用FindBugs 。

2.2.1。包装脚本命令行选项

FindBugs的包装脚本支持以下命令行选项。请注意,这些命令行选项被处理的FindBugs程序本身; 相反,它们是由包装脚本处理的。

指定传递给JVM的参数。例如,你可能想要设置一个JVM属性:

指定包含用于执行FindBugs的JRE(Java运行时环境)的目录。

指定以兆字节为单位的最大Java堆大小。缺省值是256.分析非常大的程序或库可能需要更多的内存。

打印分析到标准输出的一系列检测器运行和类别。对排除意外的分析失败很有用。

-jvmArgs args

$ findbugs -textui -jvmArgs“-Duser.language = ja” myApp.jar

-javahome directory

-maxHeap size

-debug

-属性 name=value

该选项设置系统属性。  FindBugs使用系统属性来配置分析选项。请参见。您可以多次使用此选项以设置多个属性。注意:在大多数Windows版本中,name=value 字符串必须用引号引起来。

3.命令行选项

本节介绍FindBugs支持的命令行选项。这些命令行选项可以直接调用FindBugs或使用包装器脚本时使用。

3.1。常用的命令行选项

这些选项可以与GUI和命令行界面一起使用。

该选项禁用增加精度的分析,但也会增加内存消耗。如果您发现FindBugs内存不足,或者需要很长时间才能完成分析,则可能需要尝试使用此选项。

启用可提高精度并发现更多错误的分析,但这可能需要更多内存并需要更多时间才能完成。

-effort:分钟

-effort:最大

-项目 project

指定要分析的项目。您指定的项目文件应该是使用GUI界面创建的项目文件。它通常将结束在扩展.fb.fbp

3.2。GUI选项

这些选项仅被图形用户界面接受。

-看:plastic|gtk|native

设置Swing外观。

3.3。文本UI选项

这些选项仅被文本用户界面接受。

按类名排序报告的错误实例。

只报告与指定的过滤器相匹配的错误实例filterFile.xml。请参阅。

报告除了与指定的过滤器匹配的所有错误实例filterFile.xml。请参阅。

限制分析以查找给定的逗号分隔的类和包列表。与过滤不同,此选项避免了对未明确匹配的类和包进行运行分析:对于大型项目,这可能会大大减少运行分析所需的时间。(但是,如果某些检测器未在整个应用程序中运行,那么它们可能会产生不准确的结果。)应该使用它们的完整类名称(包括包)来指定类,并且应该使用与在Java import语句中相同的方式来指定包导入包中的所有类(即添加.* 到包的全名)。更换.*.-也分析所有子包。

报告所有错误。

报告中等和高优先级的错误。这是默认设置。

只报告高优先级的错误。

轻松的报告模式。对于许多检测器,此选项会抑制用于避免报告误报的启发式方法。

以XML格式生成错误报告。生成的XML数据可以在以后的GUI中查看。您也可以将此选项指定为-xml:withMessages ; 当使用此选项的变体时,XML输出将包含描述文件中包含的警告的人类可读消息。以这种方式生成的XML文件很容易转换成报告。

生成HTML输出。默认情况下,FindBugs将使用default.xsl  样式表生成HTML:您可以findbugs.jarFindBugs源代码或二进制发行版中找到该文件。此选项的变体包括 -html:plain.xsl-html:fancy.xsl-html :fancy-hist.xsl。该plain.xsl样式表不使用JavaScript或DOM,并可能与工作老版浏览器更好,或打印。该fancy.xsl 样式表使用DOM和JavaScript用于导航和CSS的视觉呈现。在花式hist.xsl的演变fancy.xsl样式表。它广泛使用DOM和Javascript来动态过滤错误列表。

如果您想指定自己的XSLT样式表来执行HTML转换,请将选项指定为 -html:,myStylesheet.xsl其中myStylesheet.xsl是要使用的样式表的文件名。

以Emacs格式生成错误报告。

以xdoc XML格式生成错误报告以用于Apache Maven。

在指定的文件中生成输出。

此参数已被弃用。改为使用输出

此选项启用或禁用扫描要分析的文件和目录列表中找到的嵌套jar和zip文件。默认情况下,启用嵌套的jar / zip文件的扫描。要禁用它,请在命令行参数中添加-nested:false

设置辅助类路径进行分析。这个类路径应该包含所有的jar文件和目录,这些文件和目录包含属于被分析程序的一部分的类,但你不想分析错误。

从标准输入中读取辅助类路径进行分析,每行添加新条目到辅助类路径进行分析。

从文件中读取辅助类路径进行分析,每行添加新条目到辅助类路径进行分析。

阅读要从文件分析的文件,每行添加新条目到类路径进行分析。

-sortByClass

-包括 filterFile.xml

-排除 filterFile.xml

-onlyAnalyze com.foobar.MyClass,com.foobar.mypkg.*

-低

-中

-高

-轻松

-xml

-html

-emacs

-xdocs

- 输出 filename

-输出文件 filename

-nested[:true|false]

-auxclasspath classpath

-auxclasspathFromInput

-auxclasspathFromFile filepath

-analyzeFromFile filepath

-userPrefs edu.umd.cs.findbugs.core.prefs

设置要使用的用户首选项文件的路径,这可能会覆盖某些选项。指定userPrefs为第一个参数意味着稍后的某些选项将覆盖它们,因为最后一个参数意味着它们将覆盖以前的某些选项)。此选项背后的基本原理是重用FindBugs Eclipse项目设置以执行命令行。

 

来源: 

 

转载于:https://my.oschina.net/viakiba/blog/1838327

你可能感兴趣的文章
递归法----整数划分问题
查看>>
CentOS 7 安装VirtualBox
查看>>
【转载】使用缓存的9个误区(上)
查看>>
6、宏定义与预处理、函数与函数库
查看>>
单例模式 代码以及祥解
查看>>
版本管理软件
查看>>
7、递归的二分查找
查看>>
发布过程5分钟内load飙升问题排查
查看>>
C程序编译链接问题
查看>>
hive(3)HiveQL数据定义
查看>>
PAT_A1003#Emergency
查看>>
Linux安全加固--系统相关
查看>>
UVA 12898 - And Or 与和或 (思路题)
查看>>
priority_queue 优先队列
查看>>
[SOJ] 无路可逃?
查看>>
最短路径Shortest Path algorithm
查看>>
什么是Web Server
查看>>
灭火救援设施(二)
查看>>
爬虫 requests 模块
查看>>
VS2012 安装出错 :通道正在关闭
查看>>