<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta name="description" content="The latest NetBeans IDE releases">
    <meta name="keywords" content="5">
    <title>NetBeans IDE 7.2.1 Release Information</title>
    <link rel="stylesheet" type="text/css" href="../../../netbeans.css">
    <meta name="nav_link" content="Releases &amp; Planning">
    <meta name="nav_priority" content="5">
  </head>
  <body>
    <h1>NetBeans IDE 7.2.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 PHP, JavaScript, Ajax, 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 7.2 provides a significantly improved performance
      and coding experience, with new static code analysis capabilities
      in the Java Editor and smarter project scanning. The release also
      includes notable features such as integration with Scene Builder
      for visually creating JavaFX forms; support for multiple PHP
      frameworks; updated Groovy support; and many other enhancements in
      Java EE, Maven, C/C++ and the NetBeans Platform. </p>
    <p>NetBeans IDE 7.2 is available in English, Brazilian Portuguese,
      Japanese, Russian, and Simplified Chinese.<br>
    </p>
    <h2>Get the NetBeans IDE 7.2.1 Release<br>
    </h2>
    <b>The latest available download is NetBeans IDE 7.2.1, which is an
      update to NetBeans IDE 7.2.</b>
    <p><a href="https://netbeans.org/downloads/"><img alt="Download
          NetBeans IDE 7.2 Beta"
          src="../../../../images_www/v6/dl-nb-ide.gif" style="border:
          0px solid ;"></a></p>
    NetBeans IDE 7.2.1 is an update to NetBeans IDE 7.2 and contains the
    following highlights:<br>
    <br>
    <ul>
      <li>Support for JavaME 3.2 SDK<br>
      </li>
      <li>Full support for JavaFX 2.2 SDK</li>
      <li>Integration of <a
          href="http://wiki.netbeans.org/NetBeans7.2PatchesInfo">recent
          patches</a><br>
      </li>
    </ul>
    <h2>Documentation</h2>
    <p>Use the following to get started with NetBeans IDE 7.2:</p>
    <ul>
      <li><a href="../72/relnotes.html">Release Notes</a></li>
      <li><a href="../72/install.html">Installation Instructions</a></li>
      <li><a href="../../../kb/kb.html">NetBeans IDE 7.2 Tutorials <br>
        </a></li>
      <li><a href="../../../kb/docs/intro-screencasts.html">NetBeans IDE
          7.2 Screencasts<br>
        </a></li>
    </ul>
    <h2>New Feature Highlights</h2>
    <table style="width: 100%;">
      <tbody>
        <tr>
          <td style="vertical-align: top;">
            <p><span style="font-weight: bold;">Performance</span><br>
            </p>
            <ul>
              <li>Project scanning now on background, not blocking
                editor features and navigation<br>
              </li>
              <li>Improved project scanning speed</li>
              <li>Improved performance on remote Filesystems</li>
            </ul>
            <p> </p>
            <ul>
            </ul>
          </td>
          <td style="padding: 10px 0pt; vertical-align: middle;
            text-align: center;"> <br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;">
            <p><span style="font-weight: bold;">Java</span><br>
            </p>
            <ul>
              <li>FindBugs support</li>
              <li>TestNG testing framework support<br>
              </li>
              <li>New refactorings and hints</li>
              <li>Various Maven support enhancements</li>
              <li>Various Debugger enhancements<br>
              </li>
            </ul>
          </td>
          <td style="vertical-align: middle; text-align: center;"><img
              src="../../../images_www/screenshots/7.2/refactoring.png"
              alt="Refactoring in NetBeans IDE 7.2" style="border: 1px
              solid ; width: 315px; height: 102px;"><br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;">
            <p><span style="font-weight: bold;">Java EE</span></p>
            <ul>
              <li>Amazon Elastic Beanstalk support</li>
              <li>Code completion for Java Persistence named queries and
                JPQL statements</li>
              <li>More editor hints for EJB and CDI</li>
              <li>Improved and updated support for JSF component suites
              </li>
            </ul>
          </td>
          <td style="vertical-align: middle; text-align: center;"><img
              style="border: 1px solid ; width: 310px; height: 111px;"
              alt="Cloud Support in NetBeans IDE 7.2"
              src="../../../images_www/screenshots/7.2/javaee.png"><br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;">
            <p><span style="font-weight: bold;">JavaFX<br>
              </span> </p>
            <ul>
              <li>Scene Builder interoperability </li>
              <li>Improved FXML and FX CSS support</li>
              <li>FX-in-Swing Projects</li>
              <li>Default configurations for instant Run as WebStart and
                Run in Browser</li>
              <li>Project auto-update and improved FX SDK/RT
                auto-detection</li>
            </ul>
          </td>
          <td style="vertical-align: middle; text-align: center;"><img
              style="border: 1px solid ; width: 310px; height: 115px;"
              alt="JavaFX Support in NetBeans IDE"
              src="../../../images_www/screenshots/7.2/javafx.png"></td>
        </tr>
        <tr>
          <td style="vertical-align: top;">
            <p><b>PHP</b></p>
            <ul>
              <li>Support for PHP 5.4</li>
              <li>PHP editing: Fix Uses action, annotations support,
                editing of Neon and Apache Config files and more</li>
              <li>Support for Symfony2, Doctrine2 and ApiGen frameworks</li>
              <li>FTP remote synchronization</li>
              <li>Support for running PHP projects on Hudson </li>
            </ul>
          </td>
          <td style="vertical-align: middle; text-align: center;"><img
              style="border: 1px solid ; width: 309px; height: 137px;"
              alt="PHP Support in NetBeans IDE 7.2"
              src="../../../images_www/screenshots/7.2/php.png"><br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;">
            <p><b>Groovy and Grails</b></p>
            <ul>
              <li>Dramatic improvement of scanning, code completion and
                Go to Type action speed</li>
              <li>Updated to Groovy version 1.8.6</li>
              <li>Enhancements of code completion and editor hints</li>
            </ul>
          </td>
          <td style="vertical-align: middle; text-align: center;"><img
              style="border: 1px solid ; width: 310px; height: 110px;"
              alt="Groovy Support in NetBeans IDE 7.2"
              src="../../../images_www/screenshots/7.2/groovy.png"><br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;">
            <p><b>C/C++<br>
              </b></p>
            <ul>
              <li>Support new C++11 standard<br>
              </li>
              <li>Pretty printing, watchpoints and catchpoints support
                for gdb<br>
              </li>
              <li>Partial and Incremental Find Usages<br>
              </li>
              <li>Improved parsing performance and reduced memory
                consumption<br>
              </li>
            </ul>
          </td>
          <td style="text-align: center; vertical-align: middle;"><img
              style="border: 1px solid ; width: 310px; height: 110px;"
              alt="C++11 Support in NetBeans IDE 7.2"
              src="../../../images_www/screenshots/7.2/cplusplus.png"><br>
          </td>
        </tr>
        <tr>
          <td style="vertical-align: top;">
            <p><b>NetBeans Platform<br>
              </b></p>
            <ul>
              <li>Positioning of tabs in window system can be configured
              </li>
              <li>Support for custom implementations of tab control</li>
              <li>New @NavigatorPanel.Registration for registering
                navigator panels declaratively</li>
              <li>New @Arg annotation for registering command line
                options declaratively</li>
              <li>New @NbBundle.Messages available on fields</li>
            </ul>
          </td>
          <td style="vertical-align: middle; text-align: center;"><img
              style="border: 1px solid ; width: 305px; height: 117px;"
              alt="NetBeans Platform Windowing System"
              src="../../../images_www/screenshots/7.2/windowing.png"></td>
        </tr>
        <tr>
          <td style="vertical-align: top;">
            <p><b>Miscelleanous<br>
              </b></p>
            <ul>
              <li>Subversion 1.7 built-in support<br>
              </li>
              <li>Improved Find in Projects functionality<br>
              </li>
              <li>New default locations for userdir and cachedir<br>
              </li>
              <li>64-bit launcher for Windows<br>
              </li>
            </ul>
          </td>
          <td style="vertical-align: middle; text-align: center;"><img
              style="border: 1px solid ; width: 309px; height: 128px;"
              alt="Improved Find in Projects in NetBeans IDE 7.2"
              src="../../../images_www/screenshots/7.2/findinprojects.png"><br>
          </td>
        </tr>
      </tbody>
    </table>
    <p>Learn more about the features of this release on the <a
        href="http://wiki.netbeans.org/NewAndNoteworthyNB72">NetBeans
        IDE 7.2 New and Noteworthy page</a>.</p>
    <p>Visit the <a href="../roadmap.html">NetBeans Release Roadmap</a>.</p>
  </body>
</html>
