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