<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<!--
* Copyright © 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
-->

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
        <title>Static Code Analysis in the NetBeans IDE Java Editor</title>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8"></meta>
        <meta name="author" content="Alyona.Stashkova@netbeans.org"></meta>
        <meta name="description" content="Overview of static analysis of the java code functionality in the NetBeans IDE."></meta>
        <meta name="keywords" content="NetBeans, IDE, integrated development environment, Java editor, code analysis, inspections, configurations"></meta>
        <link rel="stylesheet" type="text/css" href="../../../netbeans.css"></link>
        <link rel="stylesheet" type="text/css" href="../../../lytebox.css" media="screen"></link>
        <script type="text/javascript" src="../../../images_www/js/lytebox-compressed.js"></script>
    </head>

<body><a name="top"></a>

<h1>Static Code Analysis in the NetBeans IDE Java Editor</h1>
 <div class="articledate" style="margin-left: 0px;">Jan Lahoda, Alyona Stashkova</div>
<p>The NetBeans IDE Java Editor has a   static code analysis feature, which is a tool for finding potential problems and detecting inconsistencies in your source code. </p>
<p>In this tutorial, you will learn how to perform static analysis of your Java code using FindBugs and NetBeans Java Hints without actually running your applications.</p>

<h3>Contents</h3>
<img  src="../../../images_www/articles/72/netbeans-stamp-74-73-72.png"
              class="stamp" alt="Content on this page applies to NetBeans IDE 7.4, 7.3 and 7.2"
              title="Content on this page applies to the NetBeans IDE 7.4, 7.3 and 7.2" />

        <ul class="toc">
            <li><a href="#setup">Setting Up the Tutorial Environment</a></li>
			
			<li><a href="#config">Using Configurations</a>
			<ul>
			<li><a href="#all">Running All Analyzers</a></li>
			<li><a href="#hints">Verifying Java Code against NetBeans Java Hints</a></li>
			<li><a href="#fb">Finding Potential Problems in Java Code with Findbugs</a></li>
			<li><a href="#default">Customizing a Default Configuration</a></li>
			</ul>
			</li>
			<li><a href="#create">Creating and Deleting Configurations</a></li>
			<li><a href="#inspect">Running Single Inspections</a></li>
			
			<li><a href="#summary">Summary</a></li>
            <li><a href="#seealso">See Also</a></li>
        </ul>

        <h2><a name="reqs"></a>Requirements</h2>
        <p><strong>To complete this tutorial, you need the following software and resources.</strong></p>
        <table>
            <tbody>
                <tr>
                    <th class="tblheader" scope="col">Software or Resource</th>
                    <th class="tblheader" scope="col">Version Required</th>
                </tr>
                <tr>
                    <td class="tbltd1"><a href="http://www.netbeans.org/downloads/index.html" target="_blank">NetBeans IDE</a></td>
                    <td class="tbltd1">Version 7.2, 7.3, and 7.4 </td>
                </tr>
                <tr>
                    <td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">Java Development Kit</a> (JDK)</td>
                    <td class="tbltd1">Version 6 and higher</td>
                </tr>
				<tr>
                    <td class="tbltd1"><a href="https://netbeans.org/projects/samples/downloads/download/Samples/Java/library.zip" target="_blank">library.zip</a></td>
                    <td class="tbltd1">NetBeans project</td>
                </tr>
				<tr>
                    <td class="tbltd1"><a href="http://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/2.0.0/jsr305-2.0.0.jar">jsr305-2.0.0.jar</a></td>
                    <td class="tbltd1">Java Specification Request intended to improve the effectiveness of static analysis tools</td>
                </tr>
                
            </tbody>
        </table>
<p class="notes"><b>Note:</b> <tt>jsr305-2.0.0.jar</tt> is included into <tt>library.zip</tt> for the purposes of this tutorial. </p>
<p>If using another NetBeans project, <a href="http://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/2.0.0/jsr305-2.0.0.jar">jsr305-2.0.0.jar</a> should be downloaded and added to the Libraries folder of the your project in the  IDE as follows:</p>
  <ol>
<li>Right-click the Libraries folder and choose the Add JAR/Folder from the popup menu. </li>
<li>In the Add JAR/Folder dialog box, specify the path to the downloaded <tt>jsr305-2.0.0.jar</tt> file and click Open. 
  <p class="align-center"><img src="../../../images_www/articles/72/java/code-inspect/jar.png"
                     alt="jsr305-2.0.0.jar added" border=1/></p></li>
</ol>
        
<a name="setup"></a>
<h2>Setting Up the Tutorial Environment</h2>
<p>In addition to the required software listed above you should have the following installed on your computer:</p>
<ul>
<li>The <a href="https://netbeans.org/projects/samples/downloads/download/Samples/Java/library.zip" target="_blank">library.zip</a> file should be unzipped into your NetBeans project folder and opened in the NetBeans IDE.</li>	

<li><a name="plugin"></a>The FindBugs plugin should be downloaded and installed into the NetBeans IDE as follows:
  <ol>
<li>Choose Source &gt; Inspect from the main IDE's menu.</li>
<li>In the Inspect dialog box, click Install. 
<p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/inspect.png" rel="lytebox" title="Inspect dialog box - Click to enlarge">
					   <img src="../../../images_www/articles/72/java/code-inspect/inspect-small.png" alt="Inspect dialog box" border=1/></a></p></li>
<li>In the Installer dialog box, click Next to proceed with the installation.
<p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/plugin.png" rel="lytebox" title="Installing the plugin - Click to enlarge">
					   <img src="../../../images_www/articles/72/java/code-inspect/plugin-small.png" alt="Installing the plugin" border=1/></a></p></li>
<li>Review the license agreement, select the license agreement option, and click Install.</li> 
<li>When the installation is complete, click Finish.</li>
</ol></li>
</ul>
<a name="config"></a>
<h2>Using Predefined Configurations</h2>
<p>You can use the following predefined configurations when inspecting your code in the NetBeans IDE:</p>
<ul>
			<li><a href="#all">All Analyzers</a></li>
			<li><a href="#hints">NetBeans Java Hints</a></li>
			<li><a href="#fb">FindBugs</a></li>
			<li><a href="#default">Default</a></li>
			
</ul>

        <a name="all"></a>
        <h3>Running All Analyzers</h3> 
        <p>The <tt>All Analyzers</tt> configuration deploys all static code analysis tools available in the IDE.</p>
		<p><b>To run the <tt>All Analyzers</tt> configuration, complete the following steps:</b></p>
		<ol>
           <li>Choose Source &gt; Inspect from the main IDE's toolbar.</li>
           <li>In the Scope drop-down list of the Inspect dialog box, select a file, package, or project(s) to be inspected.</li>
           <li>In the Configuration drop-down list, select the <tt>All Analyzers</tt> configuration.
             <p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/allconfig.png" rel="lytebox" title="All Analyzers configuration selected - Click to enlarge">
	      <img src="../../../images_www/articles/72/java/code-inspect/allconfig-small.png" alt="All Analyzers configuration selected" border=1/></a></p>
		  <p class="notes"><b>Note:</b> You need to install the <a href="#plugin">FindBugs</a> plugin to run this configuration for the first time.</p></li>
           <li>Click Inspect.<br/>
		   The results of the analysis are displayed in the Inspector Window as a tree view on the left.
		     <p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/all.png" rel="lytebox" title="All Analyzers configuration run - Click to enlarge">
		   <img src="../../../images_www/articles/72/java/code-inspect/all-small.png" alt="All Analyzers configuration run" border=1/></a></p>
		   The description of the currently selected in the tree view finding is displayed on the right. 
		   <p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/alldescription.png" rel="lytebox" title="Description - Click to enlarge">
		   <img src="../../../images_www/articles/72/java/code-inspect/alldescription-small.png" alt="Description" border=1/></a></p>
		   
		   <p class="notes"><b>Note:</b> If you want to leave some part of your code that is reported as problematic as is, the IDE allows you to suppress the warning for this code to leave it without any changes. You can double-click a warning in the tree view of the Inspector Window to go to the Source Editor. Press Alt-Enter, click the black arrow pointing to the right at the end of the displayed hint, and choose <tt>SuppressWarning - <i>(warning name)</i></tt>.</p>
		   <p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/suppress.png" rel="lytebox" title="Suppressing a warning - Click to enlarge">
		   <img src="../../../images_www/articles/72/java/code-inspect/suppress-small.png" alt="Suppressing a warning" border=1/></a></p>
           </li>
       
	   </ol>
	   
	   
         <a name="hints"></a>
		<h3>Verifying Java Code against NetBeans Java Hints</h3>
		<p>The <tt>NetBeans Java Hints</tt> configuration available in the IDE enables you to verify if the predefined coding standard rules are satisfied by the source code under consideration. In other words, it applies a set of NetBeans Java Hints (also known as code inspections) to your Java source files.</p>
		<p><b>To run the <tt>NetBeans Java Hints</tt> configuration, complete the following steps:</b></p>
		<ol>
		<li>Choose Source &gt; Inspect from the main IDE's toolbar.</li>
		<li>In the Scope drop-down list of the Inspect dialog box, select <tt>Open Projects</tt> (if you have only one <tt>library</tt> project open in the IDE) or <tt>Current Project (library)</tt>.
		<p class="notes"><b>Note:</b> You can define a scope (a file, package, or project(s)) for the <tt>NetBeans Java Hints</tt> configuration.</p>
		</li>
		<li>Select the Configuration radio button and choose <tt>NetBeans Java Hints</tt> in the drop-down list.
		 <p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/hints.png" rel="lytebox" title="Selecting NetBeans Java Hints - Click to enlarge">
	      <img src="../../../images_www/articles/72/java/code-inspect/hints-small.png" alt="Selecting NetBeans Java Hints" border=1/></a></p> </li>
		<li>Click Inspect.<br/>
		The IDE displays the collapsed tree view with the results of the analysis with the <tt>NetBeans Java Hints</tt> configuration in the Inspector Window.
		<p class="align-center"><img src="../../../images_www/articles/72/java/code-inspect/hintsconfig.png" alt="NetBeans Java Hints configuration run" border=1/></p></li>
		<li>In the Inspector Window, expand the <tt>library</tt> node to view the detailed list of the problems identified.<br/> 
		Alternatively, click the <a href="#categorize">Categorize</a> button in the toolbar on the left to view the problems grouped into categories. 
		<p class="align-center"><img src="../../../images_www/articles/72/java/code-inspect/catview.png" alt="Found problems grouped into categories" border=1/></p>		
		The following table displays the commands available in the Inspector Window.  
		    <table width="600px">
                    <tr>
                        <th class="tblheader" scope="col">Icon</th>
                        <th class="tblheader" scope="col" style="width:110px">Name</th>
                        <th class="tblheader" scope="col">Function</th>
                    </tr>
					 <tr>
                        <td class="tbltd1 align-center"><img src="../../../images_www/articles/72/java/code-inspect/refreshbutton.png"
                                                             alt="Refresh icon"/></td>
                        <td class="tbltd1 align-center"><strong>Refresh</strong></td>
                        <td class="tbltd1">Displays a refreshed list of the static analysis results. </td>
                    </tr>
					
					 <tr>
                        <td class="tbltd1 align-center"><img src="../../../images_www/articles/72/java/code-inspect/upbutton.png"
                                                             alt="Previous icon"/></td>
                        <td class="tbltd1 align-center"><strong>Previous Problem</strong></td>
                        <td class="tbltd1">Displays the previous problem in the list of the static analysis results.</td>
                    </tr>
					
					 <tr>
                        <td class="tbltd1 align-center"><img src="../../../images_www/articles/72/java/code-inspect/downbutton.png"
                                                             alt="Next icon"/></td>
                        <td class="tbltd1 align-center"><strong>Next Problem</strong></td>
                        <td class="tbltd1">Displays the following problem in the list of the static analysis results.</td>
                    </tr>					
                    <tr>
                        <td class="tbltd1 align-center"><img src="../../../images_www/articles/72/java/code-inspect/categorizebutton.png"
                                                             alt="Categorize icon"/></td>
                        <td class="tbltd1 align-center"><a name="categorize"></a><strong>Categorize</strong></td>
                        <td class="tbltd1">Toggles the collapsed view of the problems detected in a file,  project, or package or the categorized view of all the detected problems. </td>
                    </tr>
          </table>
</li>
		</ol>
		
        <a name="fb"></a>
		<h3>Finding Potential Problems in Java Code with FindBugs</h3>		
		<p>The <tt>FindBugs</tt> configuration available in the IDE enables you to find a wide range of potential problems in your code. It invokes the popular open source FindBugs  tool for code analysis in Java. The bug report gets generated and is displayed in the Inspector Window of the  NetBeans IDE, which  categorizes all the found problems and allows direct navigation from the bugs in the report to the suspicious code. You can also read a bug description in the adjacent window or review it at the <a href="http://findbugs.sourceforge.net/bugDescriptions.html">FindBugs Bug Descriptions</a> page by the pointer provided at the top of the left frame. </p>
		<p class="notes"><b>Note:</b> You need to install the <a href="#plugin">FindBugs</a> plugin to run this configuration for the first time.</p>
		<p><b>To identify potential errors in your Java code with the <tt>FindBugs</tt> configuration, complete the following steps:</b></p>
		<ol>
		<li>Open the <tt>library</tt> project in the NetBeans IDE and choose Source &gt; Inspect from the main toolbar.</li>
		<li>In the Scope drop-down list of the Inspect dialog box, select  <tt>Current Project (library)</tt>.
		<p class="notes"><b>Note:</b> You can inspect a file, package, or project(s) with the <tt>FindBugs</tt> configuration.</p></li>
		<li>In the Inspect dialog box, select the <tt>FindBugs</tt> configuration.
		<p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/fb.png" rel="lytebox" title="FindBugs configuration selected - Click to enlarge">
					   <img src="../../../images_www/articles/72/java/code-inspect/fb-small.png" alt="FindBugs configuration selected" border=1/></a></p></li>
		<li>Click the Inspect button to initiate the static code analysis.<br/>
		The result of the static code analysis is displayed in the Inspector Window below the Source Editor.
		<p class="align-center"><img src="../../../images_www/articles/72/java/code-inspect/inspector.png"
                     alt="Inspector Window" border=1/></p></li>
		<li>In the left frame of the Inspector Window, expand  <tt>library</tt> &gt; <tt>Source Packages</tt> &gt; <tt>bookstore</tt> &gt; <tt>Library.java</tt>.<br/>
		Alternatively, click the <a href="#categorize">Categorize</a> button in the toolbar on the left to view the bugs grouped into categories. 
		<p class="align-center"><img src="../../../images_www/articles/72/java/code-inspect/fbcat.png" alt="Found bugs grouped into categories" border=1/></p></li>
		<li>Select any of the potential bugs found.<br/>
		  The description of the selected bug is displayed in the frame on the right.
		  <p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/fbdescription.png" rel="lytebox" title="FindBugs issue description - Click to enlarge">
					   <img src="../../../images_www/articles/72/java/code-inspect/fbdescription-small.png" alt="FindBugs issue description" border=1/></a></p></li>
		</ol>
		<p class="notes"><b>Notes:</b></p>
		<ul>
		<li>If you double-click an issue in the expanded list, the IDE displays the reported issue in the Source Editor. <br/>
		Press Alt-Enter to view the bug description in the source code.
		  <p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/source-editor.png" rel="lytebox" title="Reported issue in the Source Editor - Click to enlarge">
	      <img src="../../../images_www/articles/72/java/code-inspect/source-editor-small.png" alt="Reported issue in the Source Editor" border=1/></a></p></li>
		<li>Potential errors are highlighted in the code with exclamation mark icons (<img src="../../../images_www/articles/72/java/code-inspect/exclamation.png" alt="exclamation mark icon"/>) in the left margin of the Source Editor.</li>
		</ul>
		
		<p><b>To enable FindBugs in the Java Editor, complete the following steps:</b></p>
		<ol>
		<li>Choose Tools &gt; Options in the main IDE's toolbar.</li>
		<li>Select the Editor tab and choose Hints. </li>
		<li>Choose <tt>FindBugs</tt> in the Language drop-down list. 
		<p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/fb-editor.png" rel="lytebox" title="Enabling FindBugs in the Source Editor - Click to enlarge">
	      <img src="../../../images_www/articles/72/java/code-inspect/fb-editor-small.png" alt="Enabling FindBugs in the Source Editor" border=1/></a></p></li>
		<li>Select the Run FindBugs in Editor option.</li>
		<li>Click OK.<br/>
		If you now press Alt-Enter in the source code where a bug is reported and click  the black arrow pointing to the right at the end of the displayed tip, the IDE shows some fixing options for a 
		  potential bug.
		  <p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/fbenabled.png" rel="lytebox" title="FindBugs enabled in the Source Editor - Click to enlarge">
	      <img src="../../../images_www/articles/72/java/code-inspect/fbenabled-small.png" alt="FindBugs enabled in the Source Editor" border=1/></a></p></li>
		</ol>
		 <a name="default"></a>
        <h3>Customizing a Default Configuration</h3>
        <p>While working on your code you may need to customize a predefined configuration that includes your own NetBeans Java hints or FindBugs bugs.</p>		
<p><b>To tailor a predefined <tt>Default</tt> configuration to your own needs, complete the following steps:</b></p>
<ol>
<li>Choose Source &gt; Inspect from the main IDE's toolbar.</li>
<li>Select the Configuration radio button and click Manage.<br/>The IDE displays the Configurations dialog box.
<p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/configurations-db.png" rel="lytebox" title="Configurations dialog box - Click to enlarge">
	      <img src="../../../images_www/articles/72/java/code-inspect/configurations-db-small.png" alt="Configurations dialog box" border=1/></a></p></li>
<li>Ensure <tt>Default</tt> is selected in the Configurations drop-down list. </li>
<li>In the Analyzer drop-down list, select either the <tt>Netbeans Java Hints</tt> or <tt>FindBugs</tt> analyzer.</li>
<li>Select  the inspections or bugs you need to include into your <tt>Default</tt> configuration. 
<p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/select-inspections.png" rel="lytebox" title="Selecting inspections - Click to enlarge">
  <img src="../../../images_www/articles/72/java/code-inspect/select-inspections-small.png" alt="Selecting inspections" border=1/></a></p></li>
<li>Click OK to save your <tt>Default</tt> configuration.</li>
</ol>	

		<a name="create"></a>
<h2>Creating and Deleting Configurations</h2>
<p>You can create and delete your own configurations to be used in the static analysis of your Java code.</p>	
<p><b>To create a configuration, complete the following steps:</b> </p>
<ol>
		<li>Choose Source &gt; Inspect from the main IDE's toolbar.</li>
		<li>Click Manage in the Inspect dialog box.</li>
		<li>In the Configurations dialog box, click the black arrow at the end of the Configurations drop-down list and choose New. 
		<p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/newconfig.png" rel="lytebox" title="Creating a configuration - Click to enlarge">
  <img src="../../../images_www/articles/72/java/code-inspect/newconfig-small.png" alt="Creating a configuration" border=1/></a></p>
         A <tt>newConfig</tt> configuration is created and added to the Configurations drop-down list. 
		 <p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/newconfig-created.png" rel="lytebox" title="newConfig in the Configuration list - Click to enlarge">
  <img src="../../../images_www/articles/72/java/code-inspect/newconfig-created-small.png" alt="newConfig in the Configuration list" border=1/></a></p></li>
		<li>In the Analyzer drop-down list, choose either <tt>Netbeans Java Hints</tt> or <tt>FindBugs</tt> and specify the inspections or bugs to be included into your own configuration respectively. </li>
		<li>Click OK to save your edits and close the Configurations dialog box.<br/>
		The created <tt>newConfig</tt> configuration is available in the Configuration drop-down ist of the Inspect dialog box.
		<p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/newconfig-inspect.png" rel="lytebox" title="New configuration created - Click to enlarge">
  <img src="../../../images_www/articles/72/java/code-inspect/newconfig-inspect-small.png" alt="New configuration created" border=1/></a></p></li>
</ol>
<p class="notes"><b>Note:</b> To rename a configuration, select the <tt>newConfig</tt> configuration in the Configurations drop-down list, click the black arrow at the end of the Configurations drop-down list and choose Rename. Type a new name (for example, <tt>renamedConfig</tt>) and press Enter to save your edits.</p>
<p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/renamedconfig.png" rel="lytebox" title="newConfig renamed - Click to enlarge">
  <img src="../../../images_www/articles/72/java/code-inspect/renamedconfig-small.png" alt="newConfig renamed" border=1/></a></p>
  <p><b>To delete a configuration, complete the following steps:</b> </p>
<ol>
		<li>Choose Source &gt; Inspect from the main IDE's toolbar.</li>
		<li>Click Manage in the Inspect dialog box.</li>
		<li>In the Configurations drop-down list of the Configurations dialog box, select the configuration to be deleted (<tt>renamedConfig</tt> in this example). </li>
		<li>Click the black arrow at the end of the Configurations drop-down list and choose Delete.
		<p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/delete.png" rel="lytebox" title="Deleting renamedConfig - Click to enlarge">
  <img src="../../../images_www/articles/72/java/code-inspect/delete-small.png" alt="Deleting renamedConfig" border=1/></a></p></li>
  <li>In the Delete Configuration dialog box, click Yes to confirm the deletion of the configuration.
  <p class="align-center"><img src="../../../images_www/articles/72/java/code-inspect/delete-confirm.png" alt="Confirming the deletion of renamedConfig" border=1/></p>
  The <tt>renamedConfig</tt> configuration is deleted from the Configurations list.
  <!--<p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/norenamedconfig.png" rel="lytebox" title="No renamedConfig in the Configurations list- Click to enlarge">
  <img src="../../../images_www/articles/72/java/code-inspect/norenamedconfig-small.png" alt="No renamedConfig in the Configurations list" border=1/></a></p>--></li>
</ol>

<p class="notes"><b>Note:</b> Refer to the <a href="http://platform.netbeans.org/tutorials/nbm-java-hint.html">NetBeans Java Hint Module Tutorial</a> for information on how to create a NetBeans module that provides one or more NetBeans Java hints.
</p>

		<a name="inspect"></a>
<h2>Running Single Inspections</h2>
<p>You can inspect your code for a particular deficiency in your source code using the static code analysis feature in the NetBeans IDE. </p>
<p><b>To detect a specific inconsistency or problem in your Java source code with a single inspection, complete the following steps:</b></p>
<ol>
<li>Choose Source &gt; Inspect from the main IDE's menu.</li>
<li>In the Scope drop-down list of the Inspect dialog box, select a file, package, or project(s) to be inspected. </li>
<li>Select Single Inspection and do either of the following:
  <ul>
<li>In the Single Inspection drop-down list, scroll and select a <i>single</i> NetBeans Java hint or FindBugs bug to be used in the source code analysis. 
<p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/single-inspection.png" rel="lytebox" title="Single Inspection drop-down list - Click to enlarge">
	      <img src="../../../images_www/articles/72/java/code-inspect/single-inspection-small.png" alt="Single Inspection drop-down list" border=1/></a></p></li>
<li>Click Browse to open the Browse Inspections dialog box and, in the Analyzer drop-down list, specify the analyzer and then the <i>single</i> inspection (a NetBeans Java hint or FindBugs bug)  to be used in the source code analysis. Click OK to close the Browse Inspections dialog box.
  <p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/hint-inspection.png" rel="lytebox" title="Browse Inspections dialog box - Click to enlarge">
	      <img src="../../../images_www/articles/72/java/code-inspect/hint-inspection-small.png" alt="Browse Inspections dialog box" border=1/></a></p></li>
</ul>
</li>
<li>Click Inspect to perform the source code analysis. <br/>
  After the Inspect operation is completed, the hints  that can be applied to your code or bugs that have been found are displayed in the Inspector Window below the Source Editor.
 </li>
</ol>
        <a name="summary"></a>
<h2>Summary</h2>
<p>This tutorial covers most frequent usages of the static code analysis feature in the NetBeans IDE. Please note that with the static code analysis functionality you  can also perform custom refactorings at a project scope, or apply particular refactoring configurations to several projects open in the IDE, etc. </p>

<p class="align-center"><a href="#top">top</a></p>		
		<div class="feedback-box">
            <a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Static%20Code%20Analysis%20in%20the%20NetBeans%20IDE">Send Feedback on This Tutorial</a></div>

        <br style="clear:both;"/>
		
		<a name="seealso"></a>
        <h2>See Also</h2>
        
        <p>For related material see the following documents:</p>
        <ul>     
            	
			<li><a href="code-inspect-screencast.html">Video of the Static Code Analysis Feature in the NetBeans IDE</a></li>
			<li><a href="http://wiki.netbeans.org/Java_Hints">Complete List of NetBeans Java Hints</a></li>
			<li><a href="http://wiki.netbeans.org/JavaDeclarativeHintsDescriptionSketch">Description of NetBeans Java Declarative Hints</a></li>
			<li><a href="http://platform.netbeans.org/tutorials/nbm-java-hint.html">NetBeans Java Hint Module Tutorial</a></li>
			
			
			
          
			
        </ul>
		<p class="align-center"><a href="#top">top</a></p>
</body>
</html>
