1<html><head>
2      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3   <title>Chapter&nbsp;5.&nbsp;Using the FindBugs GUI</title><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"><link rel="home" href="index.html" title="FindBugs&#8482; Manual"><link rel="up" href="index.html" title="FindBugs&#8482; Manual"><link rel="prev" href="running.html" title="Chapter&nbsp;4.&nbsp;Running FindBugs&#8482;"><link rel="next" href="anttask.html" title="Chapter&nbsp;6.&nbsp;Using the FindBugs&#8482; Ant task"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&nbsp;5.&nbsp;Using the <span class="application">FindBugs</span> GUI</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="running.html">Prev</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="anttask.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter&nbsp;5.&nbsp;Using the FindBugs GUI"><div class="titlepage"><div><div><h2 class="title"><a name="gui"></a>Chapter&nbsp;5.&nbsp;Using the <span class="application">FindBugs</span> GUI</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="gui.html#d0e1092">1. Creating a Project</a></span></dt><dt><span class="sect1"><a href="gui.html#d0e1134">2. Running the Analysis</a></span></dt><dt><span class="sect1"><a href="gui.html#d0e1139">3. Browsing Results</a></span></dt><dt><span class="sect1"><a href="gui.html#d0e1154">4. Saving and Opening</a></span></dt></dl></div><p>
4        This chapter describes how to use the <span class="application">FindBugs</span> graphical user interface (GUI).
5    </p><div class="sect1" title="1.&nbsp;Creating a Project"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1092"></a>1.&nbsp;Creating a Project</h2></div></div></div><p>
6After you have started <span class="application">FindBugs</span> using the <span class="command"><strong>findbugs</strong></span> command,
7choose the <span class="guimenu">File</span> &#8594; <span class="guimenuitem">New Project</span>
8menu item.  You will see a dialog which looks like this:
9</p><div class="mediaobject"><img src="project-dialog.png"></div><p>
10</p><p>
11Use the "Add" button next to "Classpath to analyze" to select a Java archive
12file (zip, jar, ear, or war file) or directory containing java classes to analyze for bugs.  You may add multiple
13archives/directories.
14</p><p>
15You can also add the source directories which contain
16the source code for the Java archives you are analyzing.  This will enable
17<span class="application">FindBugs</span> to highlight the source code which contains a possible error.
18The source directories you add should be the roots of the Java
19package hierarchy.  For example, if your application is contained in the
20<code class="varname">org.foobar.myapp</code> package, you should add the
21parent directory of the <code class="filename">org</code> directory
22to the source directory list for the project.
23</p><p>
24Another optional step is to add additional Jar files or directories as
25"Auxiliary classpath locations" entries.  You should do this if the archives and directories you are analyzing
26have references to other classes which are not included in the analyzed
27archives/directories and are not in the standard runtime classpath.  Some of the bug
28pattern detectors in <span class="application">FindBugs</span> make use of class hierarchy information,
29so you will get more accurate results if the entire class hierarchy is
30available which <span class="application">FindBugs</span> performs its analysis.
31</p></div><div class="sect1" title="2.&nbsp;Running the Analysis"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1134"></a>2.&nbsp;Running the Analysis</h2></div></div></div><p>
32Once you have added all of the archives, directories, and source directories,
33click the "Analyze" button to analyze the classes contained in the
34Jar files.  Note that for a very large program on an older computer,
35this may take quite a while (tens of minutes).  A recent computer with
36ample memory will typically be able to analyze a large program in only a
37few minutes.
38</p></div><div class="sect1" title="3.&nbsp;Browsing Results"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1139"></a>3.&nbsp;Browsing Results</h2></div></div></div><p>
39When the analysis completes, you will see a screen like the following:
40</p><div class="mediaobject"><img src="example-details.png"></div><p>
41</p><p>
42The upper left-hand pane of the window shows the bug tree; this is a hierarchical
43representation of all of the potential bugs detected in the analyzed
44Jar files.
45</p><p>
46When you select a particular bug instance in the top pane, you will
47see a description of the bug in the "Details" tab of the bottom pane.
48In addition, the source code pane on the upper-right will show the
49program source code where the potential bug occurs, if source is available.
50In the above example, the bug is a stream object that is not closed.  The
51source code window highlights the line where the stream object is created.
52</p><p>
53You may add a textual annotations to bug instances.  To do so, type them
54into the text box just below the hierarchical view.  You can type any
55information which you would like to record.  When you load and save bug
56results files, the annotations are preserved.
57</p></div><div class="sect1" title="4.&nbsp;Saving and Opening"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e1154"></a>4.&nbsp;Saving and Opening</h2></div></div></div><p>
58You may use the <span class="guimenu">File</span> &#8594; <span class="guimenuitem">Save as...</span>
59menu option to save your work.  To save your work, including the jar
60file lists you specified and all bug results, choose
61"FindBugs analysis results (.xml)" from the drop-down list in the
62"Save as..." dialog.  There are also options for saving just the jar
63file lists ("FindBugs project file (.fbp)") or just the results
64("FindBugs analysis file (.fba)").
65A saved file may be loaded with the
66<span class="guimenu">File</span> &#8594; <span class="guimenuitem">Open...</span>
67menu option.
68</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="running.html">Prev</a>&nbsp;</td><td width="20%" align="center">&nbsp;</td><td width="40%" align="right">&nbsp;<a accesskey="n" href="anttask.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter&nbsp;4.&nbsp;Running <span class="application">FindBugs</span>&#8482;&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;Chapter&nbsp;6.&nbsp;Using the <span class="application">FindBugs</span>&#8482; <span class="application">Ant</span> task</td></tr></table></div></body></html>