<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>
<!--

  Copyright 2009 Sun Microsystems, Inc. 

  All Rights Reserved.

-->

  
    
  
  <title>NetBeans IDE 6.9.1 Release Information</title>


    
  
  <meta name="DESCRIPTION" content="Features of the NetBeans IDE 6.9.1 Release">


    
  
  <link rel="stylesheet" type="text/css" href="../../../netbeans.css">


    
  
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">


  </head><body>
    <a name="top"></a>
    
<h1>NetBeans IDE 6.9.1 Release Information</h1>



<p> 
    The NetBeans IDE is an award-winning integrated development
    environment available for Windows, Mac, Linux, and Solaris. The NetBeans
    project consists of an <a href="../../../../features/index.html">open-source IDE</a>
    and an <a href="../../../../features/platform/index.html">application platform</a>
    that enable developers to rapidly create
    web, enterprise, desktop, and mobile applications using the Java
    platform, as well as JavaFX, PHP, JavaScript and Ajax, Ruby and Ruby on Rails,
    Groovy and Grails, and C/C++.
</p>

<p>
    The NetBeans project is supported by a vibrant
    <a href="../../../../community/index.html">developer community</a> and
    offers extensive <a href="../../../../kb/index.html">documentation and training</a>
    resources as well as a diverse selection of third-party
    <a href="http://plugins.netbeans.org">plugins</a>.
</p>



<h2>Release Overview</h2>



<p>
    NetBeans IDE 6.9 introduces the JavaFX Composer, a visual layout tool for
    visually building JavaFX GUI applications, similar to the Swing GUI builder
    for Java SE applications.
    Additional highlights include OSGi interoperability for NetBeans Platform applications
    and support for developing OSGi bundles with Maven;
    support for JavaFX SDK, PHP Zend framework, and Ruby on Rails 3.0;
    as well as improvements to the Java Editor, Java Debugger, issue tracking, and more.
</p>



<h2>Get the NetBeans IDE 6.9.1</h2>


<span style="font-weight: bold;">The latest available download is NetBeans IDE 6.9.1, which is an update to NetBeans IDE 6.9.</span><br>

<br>

<p>
    <a href="/downloads/index.html">
    <img alt="Download NetBeans IDE 6.9" style="border: 0px solid ;" src="../../../../images_www/v6/dl-nb-ide.gif"></a>
</p>


NetBeans IDE 6.9.1 <meta http-equiv="content-type" content="text/html; charset=UTF-8">includes the following notable changes:<br>
<br>
<ul>
  <li>Support for JavaFX 1.3.1</li>
</ul>
<ul>
  <ul>
    <li>Improvements to the <a href="http://wiki.netbeans.org/JavaFXDebuggerReadme">JavaFX Debugger</a></li>
  </ul>
</ul>
<ul>
  <li>Integration of the <a href="http://wiki.netbeans.org/NetBeans6.9PatchesInfo">June 2010 and July 2010 patches</a></li>
  <li>Performance improvements</li>
</ul>



<h2>Documentation</h2>



<p>Use the following documents to get started with NetBeans IDE 6.9.1:</p>


<ul>


  <li><a href="relnotes.html">Release Notes</a></li>
  <li><a href="install.html">Installation Instructions</a></li>
  <li><a href="../../../kb/kb.html">Recent Tutorials</a></li>
</ul>




<h2>Feature Highlights</h2>



<table width="100%">



    <tbody><tr>
      <td style="vertical-align: top;">
      <p><b>OSGi</b></p>
 
       <ul>
       <li>Develop OSGi bundles with Maven
       </li><li>Bundled Felix container
       </li><li>Use OSGi bundles in a NetBeans RCP application
       </li></ul>

     <br>
     <p><b>NetBeans Platform</b></p>
 
       <ul>
       <li>OSGi interoperability (developing and consuming OSGi bundles in
       Platform-based applications)
       </li><li>Felix 2.0.3 OSGi support, experimental Equinox support
       </li><li>Convert NetBeans modules into OSGi bundles and run them in an
       unmodified OSGi container
       </li><li>Branding Editor for both Ant and Maven Platform-based projects
       </li><li>NetBeans Platform-based applications generate installers for
       most common operating systems
       </li><li>Enhanced support for consuming web services and connecting to databases
       </li></ul>
      </td>
      <td style="padding: 10px 0pt; vertical-align: middle; text-align: center;">
      <p><img style="border: 1px solid ; width: 200px; height: 104px;" src="../../../images_www/screenshots/6.9/osgi-equinox-netbeans.png" alt=""></p>
      <p>&nbsp;</p>
      <p><img style="border: 1px solid ; width: 200px; height: 124px;" src="../../../images_www/screenshots/6.9/maven-osgi.png" alt=""></p>
      </td>
    </tr>

    <tr>
      <td style="vertical-align: middle;">
      <p><b>JavaFX</b></p>
      <ul>
        <li>JavaFX Composer for form-like UI components with states and access to various data sources
        </li><li>Added and improved editor hints, debugging, and refactoring
        </li><li>Enhanced Palettes for JavaFX Shapes, Colors, Effects, and Charts
        </li><li>Improved code formatting
      </li></ul>
      </td>
      <td style="padding: 10px 0pt; vertical-align: middle; text-align: center;">
      <a href="http://wiki.netbeans.org/wiki/images/6/6c/Javafx-composer-screenshot-wizard.png"><img style="border: 1px solid ; width: 200px; height: 77px;" src="../../../images_www/screenshots/6.9/javafx-composer.png" alt=""></a>
      </td>
    </tr>
    
    <tr>
      <td style="vertical-align: middle;">
      <p><b>Java EE</b></p>
      <ul>
        <li>Support for Contexts and Dependency Injection (CDI) (JSR-299)
        </li><li>Spring Framework 3.0 support
        </li><li>Bundled GlassFish Server Open Source Edition 3.0.1
        </li><li>Easy regeneration of JPA entities after database change
        </li><li>REST web services support for RCP applications
      </li></ul>
      </td>
      <td style="padding: 10px 0pt; vertical-align: middle; text-align: center;">
      <img style="border: 1px solid ; width: 200px; height: 126px;" src="../../../images_www/screenshots/6.9/enterprise-cdi.png" alt="">
      </td>
    </tr>

    <tr>
      <td style="vertical-align: middle;">
      <p><b>Java</b></p>
      <ul><li>Java Debugger breakpoint grouping, debugger attach parameter history
      </li><li>Support for annotation processors in the editor, configurable in the Project Properties
      </li><li>New Applet and Web Start (JNLP) support
      </li><li>Improved navigation in Stack Trace Analyzer and URLs, Go To Overridden/Implemented Method action
      </li></ul>

      <br>
      <p><b>Web Languages: HTML, CSS, JavaScript</b></p>
      <ul><li>Refactoring and find usages for CSS and HTML-like languages
      </li><li>Code completion and hyperlinking for id and class selector attributes
      </li><li>Refactoring inline CSS styles
      </li></ul>
      </td>
      <td style="padding: 10px 0pt; vertical-align: middle; text-align: center;">
      <p><img style="border: 1px solid ; width: 200px; height: 68px;" src="../../../images_www/screenshots/6.9/annotation-processor.png" alt=""></p>
      <p>&nbsp;</p>
      <p><img style="border: 1px solid ; width: 200px; height: 105px;" src="../../../images_www/screenshots/6.9/css-refactoring.png" alt=""></p>
      </td>
    </tr>

    <tr>
      <td style="vertical-align: middle;">
      <p><b>Java Card</b></p>
      <ul>
        <li>Support for creating Java Card Connected 3 servlets, classic and extended applets
        </li><li>Backward compatibility with Java Card 2.2.x and Java Card Classic
        </li><li>Debugging, and multiple Java Card Platform/Device creation
        </li><li>Alignment with Java Card Reference Implementation
      </li></ul>
      </td>
      <td style="padding: 10px 0pt; vertical-align: middle; text-align: center;">
      <img style="border: 1px solid ; width: 200px; height: 126px;" src="../../../images_www/v6/9/features/java-card.png" alt="">
      </td>
    </tr>

   <tr>
      <td style="vertical-align: middle;">
      <p><b>PHP</b></p>
      <ul>
        <li>PHP Zend Framework support
        </li><li>"Overrides/Implements" and "Is Overridden/Implemented" annotations
        </li><li>New formatter with many formatting rules</li>
      </ul>
      <br>
      <p><b>Ruby</b></p>
      <ul>
        <li>Ruby on Rails 3.0 support
        </li>
      </ul>

      </td>
      <td style="padding: 10px 0pt; vertical-align: middle; text-align: center;">
      <img style="border: 1px solid ; width: 200px; height: 114px;" src="../../../images_www/screenshots/6.9/zend-php.png" alt="">
      </td>
    </tr>

    <tr>
      <td style="vertical-align: middle;">
      <p><b>C/C++</b></p>
      <ul><li>Unit test integration with C/C++ projects
      </li><li>Enhanced remote development including remote file download and browsing
      </li><li>Improved support of makefile targets and Fortran
      </li><li>Improved hyperlink navigation between overridden methods and classes
      </li></ul>
      </td>
      <td style="padding: 10px 0pt; vertical-align: middle; text-align: center;">
      <img style="border: 1px solid ; width: 200px; height: 122px;" src="../../../images_www/screenshots/6.9/c-remote-download.png" alt="">
      </td>
    </tr>

    <tr>
      <td style="vertical-align: middle;">
      <p><b>General</b></p>
      <ul><li>Many more editor hints for Java and Ruby
      </li><li>Spell checker support in the Editor
      </li><li>Help menu item for reporting bugs and slowness against NetBeans IDE    
      </li><li>Support for multiple Kenai-based team servers (e.g. kenai.com and netbeans.org).
      </li></ul>
      </td>
      <td style="padding: 10px 0pt; vertical-align: middle; text-align: center;">
      <img style="border: 1px solid ; width: 200px; height: 75px;" src="../../../images_www/screenshots/6.9/team-server.png" alt="">
      </td>
    </tr>

</tbody>
</table>



    
<p><br></p>


    
<p>Learn more about the features of this release at the
    <a href="http://wiki.netbeans.org/NewAndNoteworthy69">NetBeans
    IDE New and Noteworthy page</a>!</p>


    
<p>Visit the <a href="../roadmap.html">NetBeans release roadmap</a>.</p>

 

  </body></html>
