<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
  Copyright 2010, 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 6.9.1 Installation Instructions</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
<meta name="description" content="Installation Instructions for NetBeans IDE 6.9.1">
<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 6.9.1 Installation Instructions</h1>
<div class="articledate" style="margin-left: 0px;">Last updated: <!-- #BeginDate format:Am1 -->August 3, 2010<!-- #EndDate --> </div>
<p>This document describes how to install NetBeans IDE 6.9.1 on your system. Please see the NetBeans IDE 6.9.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 6.9.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">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></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.0 Update 13 or later is required to install NetBeans IDE. The 6.9.1 version of the IDE can not be installed using JDK 5.0. You can download the latest update of JDK 6.0 at <a href="http://java.sun.com/javase/downloads/index.jsp" target="_blank">http://java.sun.com/javase/downloads</a>.
<p> The PHP, Ruby 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.0. </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="https://netbeans.org/downloads/" 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 RCP development platform.</li>
   <li><b>JavaFX</b>. Includes the JavaFX SDK 1.3.1 and JavaFX Composer for multi-platform rich application development.</li>
   <li><b>Java</b>. Provides tools for developing Java SE, Java EE and Java ME applications as well as support for NetBeans RCP development platform. This download option also includes GlassFish Server Open Source Edition 3.0.1, and Apache Tomcat 6.0.26 software. </li>
   <li><b>Ruby</b>. Provides tools for Ruby development and supports Rails and JRuby. Also contains GlassFish Server Open Source Edition 3.0.1.</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 Java or &quot;All&quot; download options, 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 Ruby 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>
<ol>
  <li>Apache Tomcat 6.0.26 is included in the &quot;Java&quot; and &quot;All&quot; download options but it is not installed by default from either of these options. To install Apache Tomcat from the Java or &quot;All&quot; download, launch the installer and select Apache Tomcat 6.0.26 in the Customize Installation dialog box.</li>

  <li>For C/C++ development (applicable for the C/C++ and &quot;All&quot; 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>. </li>
  <li>For Mac OS X, you can customize the NetBeans IDE installation from Java, Ruby, and &quot;All&quot; downloads. The IDE installation from JavaSE, PHP, and C/C++ 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>
</ol>
<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="https://netbeans.org/downloads/" target="_blank"> <strong>https://netbeans.org/downloads/</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>To choose the tools and runtimes to install, 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 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>If the GlassFish Server Open Source Edition 3.0.1 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. </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>
  </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">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 panels that opens click the package icon. The package has the <tt>.mpkg</tt> extension. The installation wizard starts.</li>
  <li>At the Welcome 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 All, Java, or Ruby 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. The NetBeans IDE 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>
  <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.6.0</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 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.0.1, 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 6.9.1 and click Remove.</li>
</ol>
<p><b>To uninstall the GlassFish Server Open Source Edition 3.0.1: </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.0.1 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 6.0.26 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.0.1, 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.0.1</b>:</p>
<ol>
  <li>Shut down the IDE.</li>
  <li>Locate the application server installation directory.
  <p><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="70">Platform</th>
            <th width="101">Installing As...</th>
			<th width="264">GlassFish 3.0.1 Installation</th>
        </tr>
        <tr class="tbltd0">
          <td>Windows</td>
          <td>user with admin rights</td>
          <td><tt>%ProgramFiles%\glassfish-3.0.1</tt></td>
        </tr>
        <tr class="tbltd0">
          <td>Windows</td>
          <td>user</td>
          <td><tt>%USERPROFILE%\glassfish-3.0.1</tt></td>
        </tr>
        <tr class="tbltd0">
            <td>Solaris&nbsp;OS&nbsp;</td>
            <td>root</td>
			 <td><tt>/opt/glassfish-3.0.1</tt></td>
        </tr>
        <tr class="tbltd1">

            <td>Solaris&nbsp;OS,Linux</td>
            <td valign="top">user</td>
			<td valign="top"><tt>~/glassfish-3.0.1</tt></td>
        </tr>
        <tr class="tbltd0">
            <td>Linux</td>
            <td>root</td>
			<td><tt>/usr/local/glassfish-3.0.1</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 and 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">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 and 6.x can coexist with NetBeans IDE 6.9.1 on the same system. You do not have to uninstall  the earlier versions in order to install or run NetBeans IDE 6.9.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 6.9.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 Mac 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">NetBeans IDE 6.9.1 Release Information</a></li>
<li><a href="relnotes.html">NetBeans IDE 6.9.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: NetBeans IDE 6.9.1 Installation Instructions">Send Us Your Feedback</a>
</div>
<br style="clear:both;">
<p align="center"><a href="#top">top</a></p>
</body>
</html>
