<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
  Copyright 2012, Oracle Inc. 
  All Rights Reserved.
-->

<html>
<head>
<link rel="stylesheet" type="text/css" href="../../../netbeans.css">
<link rel="stylesheet" type="text/css" media="print" href="../../../print.css">
<link rel="shortcut icon" href="https://netbeans.org/favicon.ico" type="image/x-icon" >
<title>NetBeans IDE 7.2.1 Installation Instructions</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
<meta name="description" content="Installation Instructions for NetBeans IDE 7.2">
<meta name="keywords" content="NetBeans, IDE, free, open source, install notes, developer, installer, NetBeans, NetBeans IDE, NetBeans installer, NetBeans development environment" >
<style type="text/css">
<!--
.style2 {color: #000000}
-->
</style>
</head>
<body>
<a name="top"></a>
<h1>NetBeans IDE 7.2.1 Installation Instructions</h1>
<div class="articledate" style="margin-left: 0px;">Last updated: <!-- #BeginDate format:Am1 -->October 15, 2012<!-- #EndDate --> </div>
<p>This document describes how to install NetBeans IDE 7.2.1 on your system. Please see the NetBeans IDE 7.2.1 Release Notes for information about <a href="relnotes.html#system_requirements">supported operating systems and hardware configurations</a> for the IDE. To learn about the new features included in this release of the IDE see the <a href="index.html">NetBeans IDE 7.2.1 Release Information</a> page.</p>

<h2>Contents</h2>
<ul>
<li><a href="#requiredsoftware" title="Required Software">Required Software</a></li>
<li><a href="#downloadoptions" title="Installer Download Options">Installer Download Options</a></li>
<li><a href="#customizeinstall" title="Customizing Your Installation">Customizing Your Installation</a></li>
<li><a href="#startdownload" title="Starting the Download">Starting the Download</a></li>
<li><a href="#installation" title="Installing the Software">Installing the Software</a><div>
<ul>
<li><a href="#install_windows">Microsoft Windows, Solaris OS, and Linux</a></li>
<li><a href="#install_mac">OS X</a> </li>
<li><a href="#install_zip">Platform-Independent Package</a> </li>
</ul>
</div></li>
<li><a href="#uninstallation" title="Uninstalling the Software">Uninstalling the Software</a><div>
<ul>
<li><a href="#uninstall_windows">Microsoft Windows</a></li>
<li><a href="#uninstall_sollinux">Solaris OS, Linux</a></li>
<li><a href="#uninstall_mac">OS X</a></li>
</ul>
</div></li>
<li><a href="#upgrading">Upgrading and Multiple Installation Support</a></li>
<li><a href="#troubleshooting" title="Troubleshooting">Trouble</a><a href="#troubleshooting" title="Troubleshooting">shooting</a></li>
<li><a href="#moreinformation" title="More Information">More In</a><a href="#moreinformation" title="More Information">formation</a></li>
</ul>
<h2><a name="requiredsoftware" id="requiredsoftware"></a>Required Software</h2>
<p>The Java SE Development Kit (JDK) 6 Update 26 or later is required to install the NetBeans IDE. The 7.2.1 version of the IDE cannot be installed using JDK 5.0. You can download the latest update of JDK 6 or 7 at <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">http://www.oracle.com/technetwork/java/javase/downloads</a>.</p>
<p> The PHP and C/C++ NetBeans bundles only require the Java Runtime Environment (JRE) 6 to be installed and run. However, if you are planning to use any of the Java features, you need JDK 6 or JDK 7. </p>
<p>The JavaFX 2.2 SDK is required to use JavaFX 2.2 features in the NetBeans IDE 7.2.1. You can download the JavaFX 2.2 SDK from the <a href="http://www.oracle.com/technetwork/java/javafx/downloads/index.html" target="_blank">JavaFX download site</a>.</p>
<p class="notes"><b>Note:</b> </p>
   <ul>
     <li>JavaFX 2.2 is bundled with the latest JDK 7 for Windows, Mac and Linux.</li>
     <li>If you install the JDK 7 Update 6 or newer to default locations, the NetBeans IDE can <a href="../../../kb/docs/java/javafx-setup.html#create-platform">create a JavaFX-enabled Java platform</a> automatically.</li>
     <li>To use JavaFX features in the NetBeans IDE, we strongly recommend upgrading your JDK version to JDK 7 Update 6 or newer.</li>
   </ul>
   </p>
<p align="center"><a href="#top">top</a></p>
<h2><a name="downloadoptions" id="downloadoptions"></a>Installer Download Options</h2>
<p>On the NetBeans IDE <a href="http://download.netbeans.org/netbeans/7.2.1/" target="_blank">Download page</a>, you can obtain one of several installers, each of which contains the base IDE and additional tools.  </p>
<p>The following installers are available: </p>
<ul>
   <li><b>Java SE</b>. Supports all standard Java SE development features as well as support for NetBeans Platform development and JavaFX 2.1.1 SDK.</li>
   <li><b>Java EE</b>. Provides tools for developing Java SE and Java EE  applications as well as support for NetBeans Platform development and JavaFX 2.1.1 SDK. This download option also includes GlassFish Server Open Source Edition 3.1.2.2, and Apache Tomcat 7.0.27 software. </li>
   <li><b>C/C++</b>. Supports development in the C, C++, Qt, Fortran and Assembly languages. </li>
   <li><b>PHP</b>. Provides tools for PHP 5.x development, Zend and Symfony Framework support.</li>
   <li><b>All. </b> This is a full download option, which contains all the runtimes and technologies available for the NetBeans IDE.  </li>
</ul>
<p align="center"><a href="#top">top</a></p>
<h2><a name="customizeinstall"></a>Customizing Your Installation</h2>
<p>If you download the <b>All</b> download option, you can choose exactly what tools and runtimes to install. Click Customize at the Welcome page of the installer and select the features that you want to use. For more information, see <a href="#installation" title="Installing the Software">Installing the Software</a>.</p>
<p>If you want to add functionality to your NetBeans IDE configuration, use the NetBeans Plugin Manager. For example, assume that you start out by downloading and installing the PHP pack. You then decide that you want to try out the C/C++ functionality. To do this, go to the NetBeans Plugin Manager from the IDE (choose Tools &gt; Plugins) and add the C/C++ pack to your existing installation.</p>
<p>There are several important notes about installation and configuration of some NetBeans IDE features: </p>
<ul>
  <li>Apache Tomcat 7.0.27 is included in the <b>Java EE</b> and <b>All</b> download options but it is not installed by default from either of these options. To install Apache Tomcat, select the appropriate option below:
    <ul> 
  <li>from the <b>Java EE</b> download, launch the installer and select the Apache Tomcat 7.0.27 checkbox at the Welcome page;</li>
  <li>from the <b>All</b> download, launch the installer and select Apache Tomcat 7.0.27 in the Customize Installation dialog box.</li>
  </ul></li>

  <!--<li>For C/C++ development (applicable for the <b>C/C++</b> and <b>All</b> downloads), you need to additionally install compilers and tools. For more information, refer to the <a href="cpp-setup-instructions.html">Configuring the NetBeans IDE for C/C++/Fortran</a> document. </li>-->
  <li>To enable JavaFX 2.1.1 support in the NetBeans IDE 7.2.1 release, refer to the <a href="../../../kb/docs/java/javafx-setup.html" target="_blank">Setting Up NetBeans IDE With JavaFX 2.1</a> document.</li>
  <li>For OS X, you can customize the NetBeans IDE installation from the <b>All</b> and <b>Java EE</b> downloads. The IDE installation from <b>Java SE</b>, <b>C/C++</b>, and <b>PHP</b> downloads cannot be customized. </li>
  <li>You can also download <a href="#install_zip">a platform-independent zip file</a> and run the NetBeans IDE executable file. Note that the GlassFish Server Open Source Edition and Apache Tomcat are only available with platform-specific installers. </li>
  <li>To make sample project templates unreachable in the NetBeans IDE installation, see the <a href="http://wiki.netbeans.org/FaqHideSampleProjects">Hide Sample Projects FAQ</a> page.</li>
</ul>
<p align="center"><a href="#top">top</a></p>
<h2><a name="startdownload" id="startdownload"></a>Starting the Download</h2>

<ol>
<li>Go to <a href="http://download.netbeans.org/netbeans/7.2.1/" target="_blank"> <strong>http://download.netbeans.org/netbeans/7.2.1/</strong></a></li>
<li>In the upper right area of the page, select the language and platform from the drop-down list. 
  You can also choose to download and use the platform-independent zip file. </li>
<li>Click the Download button for the download option that you want to install.</li>
<li>Save the installer file to your system.</li>
</ol>
<p align="center"><a href="#top">top</a></p>
<h2><a name="installation"></a>Installing the Software</h2>

<p>Follow the instructions in this section to install the IDE on your system. These installation instructions apply to all supported platforms. For the list of supported platforms and system requirements, see the <a href="relnotes.html#system_requirements">release notes</a>. </p>
<h3><a name="install_windows" id="install_windows">Microsoft Windows, Solaris OS, and Linux</a></h3>
<p><b>To install the software:</b></p>
  <ol>
    <li>After the download completes, run the installer. 
   <ul>
    <li>For Windows, the installer executable file has the <tt>.exe</tt> extension. Double-click the installer file to run it. </li>
    <li>For Solaris and Linux platforms, the installer file has the <tt>.sh</tt> extension. For these platforms, you need to make the 
    installer files executable by using the following command: <tt>chmod +x &lt;<i>installer-file-name</i>&gt;</tt></li>
   </ul>
  </li>
    <li>If you downloaded the <b>All</b> or <b>Java EE</b> bundle, you can customize your installation. Perform the following steps at the Welcome page of the installation wizard:
      <ol type="a">
         <li>Click Customize.</li>
         <li>In the Customize Installation dialog box, make your selections.</li>
         <li>Click OK.</li>
      </ol>
    </li>
     <li>At the Welcome page of the installation wizard, click Next.</li>
     <li>At the License agreement page, review the license agreement, click the acceptance check box, and click Next.</li>
	 <li>At the JUnit License Agreement page, decide if you want to install JUnit and click the appropriate option, click Next.</li>
     <li>At the NetBeans IDE installation page, do the following:
       <ol type="a">
      <li>Accept the default installation directory for the NetBeans IDE or specify another directory.
         <p><b>Note:</b> The installation directory must be empty and the user profile you are using to run the installer must have 
         read/write permissions for this directory.</p></li>
      <li>Accept the default JDK installation to use with the NetBeans IDE or select a different installation from the drop-down list.
          If the installation wizard did not find a compatible JDK installation to use with the NetBeans IDE, your JDK is not installed 
          in the default location. In this case, specify the path to an installed JDK and click Next, or cancel the current installation. 
          After installing the required JDK version you can restart the installation.</li>
       </ol></li>
   <li>If the GlassFish Server Open Source Edition 3.1.2.2 installation page opens, accept the default installation directory or specify another installation location. </li>
   <li>If you are installing Apache Tomcat, on its installation page, accept the default installation directory or specify another installation location. Click Next.</li>
   <li>At the Summary page, verify that the list of components to be installed is correct and that you have adequate space on your system for the installation.</li>
   <li>Click Install to begin the installation.</li>
   <li>At the Setup Complete page, provide anonymous usage data if desired, and click Finish.</li>
  </ol>
<p class="notes"><b>Note:</b> If you encounter problems successfully completing the software installation, see <a href="#troubleshooting">Troubleshooting</a> for descriptions and suggested workarounds for unresolved issues that could affect the installation process. </p>
<h3><a name="install_mac" id="install_mac">OS X</a></h3>
<p><b>To install the software:</b></p>
<ol>
  <li>After the download completes, run the installer. The installer file has the <tt>.dmg</tt> extension. </li>
  <li>On the panel that opens double-click the package icon. The package has the <tt>.mpkg</tt> extension. The installation wizard starts.</li>
  <li>Click Continue when the &quot;This package will run a program to determine if the software can be installed.&quot;  dialog box is displayed.</li>
  <li>At the Introduction page of the installation wizard, click Continue.</li>
  <li>Review the license agreement and click Continue. Click Accept in the pop-up window to accept the license.</li>
  
  <li>At the Select a Destination page, select the drive and click Continue. </li>
  <li>If you downloaded the <b>All</b> or <b>Java EE</b> bundle, you can customize your installation. On the last installation wizard panel, press the Customize button in the bottom left-hand side of the panel. The tree of products is displayed.</li>
  <li>Select the products you want to install.</li>
  <li>Enter the administrator's name and password for your system and click OK to begin the installation.</li>
</ol>

<h3><a name="install_zip" id="install_zip">Platform-Independent Package </a></h3>
<p><b>To run the software:</b></p>
<ol>
  <li>After the download of the platform-independent ZIP file completes, extract it to any folder on your system. </li>
  <li>Run the executable file located in the <tt>netbeans/bin</tt> directory. </li>
  <li>Accept the License Agreement. </li>
  <li>At the JUnit License Agreement page, decide if you want to install JUnit and click the appropriate option, click Next. The NetBeans IDE installation starts. </li>
</ol>
<p><span class="notes"><b>Note</b>: If a compatible JDK installation cannot be found, you might need to manually add a path to the 
JDK installation directory by doing the following:</span></p>
<ol type="a">
  <li>Open the <tt>netbeans.conf</tt> file located in the <tt>netbeans/etc</tt> directory in a text editor.</li>
  <li>Enter the location of a compatible JDK installation for the <tt>netbeans_jdkhome</tt> option. The default location in Windows is <tt>C:\Program Files\Java\jdk1.7.0_09</tt>.</li>
  <li>Save the <tt>netbeans.conf</tt> file and run the  executable file in the <tt>netbeans/bin</tt> directory.</li>
</ol>

<p><span class="notes"><b>Note</b>: The GlassFish Server Open Source Edition and Apache Tomcat are available only with platform-specific installers.</span></p> 
<p><span class="notes"><b>Note</b>: To use the GlassFish Server Open Source Edition and/or Apache Tomcat that are already installed on your machine, in the NetBeans IDE, click <tt>Servers</tt> on the
<tt>Tools</tt> menu.  This displays the Add Server Instance Wizard which helps to register an instance of the
required web server with the NetBeans IDE.
</span></p>

<p align="center"><a href="#top">top</a></p>
<h2><a name="uninstallation">Uninstalling the Software</a></h2>
<p>Follow the instructions in this section to uninstall the IDE on your system. These uninstallation instructions apply to all supported platforms. For the list of supported platforms, see the <a href="relnotes.html">release notes</a>.</p>
<div>
<h3><a name="uninstall_windows">Microsoft Windows</a></h3>
<p>If necessary, you can uninstall the NetBeans IDE, the GlassFish Server Open Source Edition 3.1.2.2, and Apache Tomcat using the following procedures.</p>
<p><b>To uninstall the IDE</b>:</p>
<ol>
  <li>Shut down the IDE.  </li>
  <li>From the Control Panel, select Add or Remove Programs, then select NetBeans IDE 7.2.1 and click Remove.</li>
  <li>To uninstall GlassFish and Tomcat together with the IDE, at the Summary page make sure that the correct versions are listed and check the appropriate checkboxes.</li>
  <li>Check the NetBeans user directory checkbox if you want to remove it together with the  IDE, and click Uninstall. </li>
  <li>At the Summary page, click Uninstall.  </li>
  <li>After uninstallation completes, click Finish.</li>
</ol>
<p><b>To uninstall the GlassFish Server Open Source Edition 3.1.2.2: </b></p>
<ol>
  <li>Shut down the IDE.</li>
  <li>From the Control Panel, select Add or Remove Programs, then select GlassFish Server Open Source Edition 3.1.2.2 and click Remove.</li>
</ol>
<p><b>To uninstall Apache Tomcat: </b></p>

<ol>
  <li>Shut down the IDE.</li>
  <li>From the Control Panel, select Add or Remove Programs, then select Apache Tomcat 7.0.27 and click Remove.</li>
</ol>
</div>
<div>
<h3><a name="uninstall_sollinux">Solaris OS, Linux</a></h3>
<p>If necessary, you can uninstall the NetBeans IDE, the GlassFish Server Open Source Edition 3.1.2.2, and Apache Tomcat using the following procedures.</p>
<p><b>To uninstall the IDE</b>:</p>

<ol>
  <li>Shut down the IDE.</li>
  <li>In the IDE installation directory, run the <tt>uninstall.sh</tt> file. </li>
  <li>To uninstall GlassFish and Tomcat together with the IDE, at the Summary page make sure that the correct versions are listed and check the appropriate checkboxes. </li>
  <li>At the Summary page, click Uninstall. 
  </li>
  <li>After uninstallation completes, click Finish.</li>
</ol>
<p><b>To uninstall GlassFish Server Open Source Edition 3.1.2.2</b>:</p>
<ol>
  <li>Shut down the IDE.</li>
  <li>Locate the application server installation directory.
  <p class="notes"><b>Note</b>: The default installation location is different depending on the type of installation and the platform. The following table shows the default application server installation directory for various platforms.</p>

  <table>
    <tbody>
        <tr class="tblheader">
            <th width="107">Platform</th>
            <th width="130">Installing As...</th>
			<th width="264">GlassFish 3.1.2.2 Installation</th>
        </tr>
        <tr class="tbltd0">
          <td>Windows</td>
          <td>user with admin rights</td>
          <td><tt>%ProgramFiles%\glassfish-3.1.2.2</tt></td>
        </tr>
        <tr class="tbltd1">
          <td>Windows</td>
          <td>user</td>
          <td><tt>%USERPROFILE%\glassfish-3.1.2.2</tt></td>
        </tr>
        <tr class="tbltd0">
            <td>Solaris&nbsp;OS&nbsp;</td>
            <td>root</td>
			 <td><tt>/opt/glassfish-3.1.2.2</tt></td>
        </tr>
        <tr class="tbltd1">

            <td>Solaris&nbsp;OS, Linux</td>
            <td valign="top">user</td>
			<td valign="top"><tt>~/glassfish-3.1.2.2</tt></td>
        </tr>
        <tr class="tbltd0">
            <td>Linux</td>
            <td>root</td>
			<td><tt>/usr/local/glassfish-3.1.2.2</tt></td>
        </tr>
    </tbody>
</table>
  </li>
  <li>In the application server installation directory, run the <tt>uninstall.sh</tt> file.</li>

  <li>At the Summary page, click Uninstall.
  </li>
  <li>After uninstallation completes, click Finish.</li>
</ol>
<p><b>To uninstall Apache Tomcat: </b></p>
<ol>
  <li>Shut down the IDE.</li>

  <li>Locate the Apache Tomcat installation directory. 
    <p class="notes"><b>Note</b>: The default installation location varies depending on the type of installation and the platform. The following table shows the default application server installation directory for different platforms.</p>

  <table>
    <tbody>
        <tr class="tblheader">
            <th width="107">Platform</th>
            <th width="130">Installing As...</th>
			<th width="496">Apache Tomcat 7.0.27 Installation</th>
        </tr>
        <tr class="tbltd0">
          <td>Windows</td>
          <td>user with admin rights</td>
          <td><tt>%ProgramFiles%\Apache Software Foundation\Apache Tomcat 7.0.27</tt></td>
        </tr>
        <tr class="tbltd1">
          <td>Windows</td>
          <td>user</td>
          <td><tt>%USERPROFILE%\Apache Software Foundation\Apache Tomcat 7.0.27</tt></td>
        </tr>
        <tr class="tbltd0">
            <td>Solaris&nbsp;OS&nbsp;</td>
            <td>root</td>
			 <td><tt>/opt/apache-tomcat-7.0.27</tt></td>
        </tr>
        <tr class="tbltd1">

            <td>Solaris&nbsp;OS, Linux</td>
            <td valign="top">user</td>
			<td valign="top"><tt>~/apache-tomcat-7.0.27</tt></td>
        </tr>
        <tr class="tbltd0">
            <td>Linux</td>
            <td>root</td>
			<td><tt>/usr/local/apache-tomcat-7.0.27</tt></td>
        </tr>
    </tbody>
</table>
  </li>
  
  <li>In the application server installation directory, run the <tt>uninstall.sh</tt> file.  </li>
  <li>At the Summary page, click Uninstall. </li>
  <li>After uninstallation completes, click Finish</li>
</ol>
</div>

<div>
<h3><a name="uninstall_mac" id="uninstall_mac">OS X</a></h3>
<p><b>To uninstall the IDE and application server</b>:</p>
<ol>
  <li>Shut down the software.</li>
  <li>Drag the program folders or files to the Trash.    
  Note that the default location for the IDE and application server is <tt>/Applications/NetBeans/</tt>.  </li>
</ol>
</div>

<div>
<h3><a name="uninstall_zip" id="uninstall_zip">Platform-Independent Package</a></h3>
<p>To uninstall the IDE files, follow the steps described in the <a href="#clean">Cleaning Up After Incomplete Installations</a> section of this document. </p>
</div>

<p align="center"><a href="#top">top</a></p>

<h2><a name="upgrading"></a>Upgrading and Multiple Installation Support</h2>
<p>Multiple installations of NetBeans IDE 5.x,  6.x, and 7.x can coexist with NetBeans IDE 7.2.1 on the same system. You do not have to uninstall  the earlier versions in order to install or run NetBeans IDE 7.2.1. </p>
<p>If you have an existing installation of NetBeans IDE you can choose whether or not to import the user settings from the existing user directory when you run NetBeans IDE 7.2.1   for the first time.</p>
<p><span class="notes"><b>Note</b>: Incremental version upgrades of the IDE cannot be performed at this time. To upgrade to the most recent version you must download the latest installer.</span></p>
<p align="center"><a href="#top">top</a></p>
<h2><a name="troubleshooting" id="troubleshooting"></a>Troubleshooting</h2>
<div>
<h3>About the Installer Working Directory</h3>
<p>The installer stores data about installation sessions in the installer working directory. Examples of this data are the list of components installed on your system, installation log messages, and registry data. </p>

<p>The default location for the installer working directory is <tt>%USERPROFILE%\.nbi</tt> on Windows and <tt>~/.nbi</tt> on other platforms. The log subdirectory contains the installation log files. </p>
</div>
<div>
<h3><a name="clean"></a>Cleaning Up After Incomplete Installations</h3>
<p>After incomplete or unsuccessful installations, you might need to clean up your system from previous installations. </p>
<p><b>For Microsoft Windows, Solaris OS, and Linux:</b></p>
<ol>

  <li>Delete the installer working directory.</li>
  <li>Delete the installation directories of the IDE and the GlassFish application server.</li>
  <li>On the Windows platform, delete all <tt>nbi*</tt> registry entries from the following registry keys: 
    <tt>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall</tt> 
    <tt>HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall</tt> </li>

</ol>
<p><b>For OS X:</b></p>
<ul>
  <li>Drag the program folders or  files to the Trash. </li>
</ul>
</div>
<div>
<h3>Disabling Some Software Before Installation</h3>
<p>It is better to disable firewall, antivirus, and monitoring applications before you start installation. Some of these applications can prevent IDE components from being configured correctly during the installation process. </p>
<p>For example, if you have the Logitech Process Monitor application (<tt>LVPrcSrv.exe</tt>) running on your system, switch it off before installation. </p>

</div>
<p align="center"><a href="#top">top</a></p>
<h2><a name="moreinformation"></a>More Information</h2>

<ul>
<li><a href="index.html" target="_blank">NetBeans IDE 7.2.1 Release Information</a></li>
<li><a href="relnotes.html" target="_blank">NetBeans IDE 7.2.1 Release Notes</a></li>
<li><a href="http://wiki.netbeans.org/NetBeansUserFAQ#Installation" target="_blank">NetBeans IDE Installation FAQ</a></li>
</ul>
<div class="feedback-box"><a href="https://netbeans.org/about/contact_form.html?to=3&subject=Feedback:%20NetBeans%20IDE%207.2%20Installation%20Instructions">Send Us Your Feedback</a>
</div>
<br style="clear:both;">
<p align="center"><a href="#top">top</a></p>
</body>
</html>
