<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
  Copyright 2008 Sun Microsystems, Inc. 
  All Rights Reserved.
-->

<html>
<head>
<link rel="stylesheet" type="text/css" href="https://netbeans.org/netbeans.css">
<link rel="shortcut icon" href="https://netbeans.org/favicon.ico" type="image/x-icon" >
<title>NetBeans IDE 6.0.1 Installation Instructions</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
<meta name="description" content="Installation instructions for the NetBeans IDE 6.0">
<style type="text/css">
<!--
.style2 {color: #000000}
-->
</style>
</head>
<body>
<a name="top"></a>
<h1>NetBeans IDE 6.0.1 Installation Instructions</h1>
<div class="articledate" style="margin-left: 0px;">Last updated:
  <!-- #BeginDate format:Am1 -->January 23, 2008<!-- #EndDate -->
</div>
<p>This document describes how to install NetBeans IDE 6.0.1 on your system. For information about supported operating systems and hardware configurations for the IDE, see the <a href="relnotes.html">NetBeans IDE 6.0.1 Release Notes</a>. See <a href="index.html">NetBeans IDE 6.0 Information</a> to learn about the new features included in NetBeans IDE 6.0.1. </p>

<p><b>Contents</b></p>
<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>

</ul></div></li>
<li><a href="#uninstallation" title="Uninstalling the Software">Uninstalling the Software</a></li>
<li><a href="#upgrading">Upgrading and Coexisting with Previous Versions</a> </li>
<li><a href="#troubleshooting" title="Troubleshooting">Troubleshooting</a></li>
<li><a href="#moreinformation" title="More Information">More Information</a></li>
</ul>
<h2><a name="requiredsoftware" id="requiredsoftware"></a>Required Software</h2>
<p>Before you install the IDE, the Java SE Development Kit (JDK) 5 Update 14 (version 1.5.0_14) or newer (including JDK 6 Update 4) must be installed on your system. If you do not have an installation of JDK 5 Update 14 or newer, you cannot proceed with the installation. For more information about the required JDK version, see the Required Software section in the <a href="relnotes.html">NetBeans IDE 6.0.1 Release Notes</a>. </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 6.0.1 <a href="../../../downloads/index.html">Download</a> page, you can download 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>Web &amp; Java EE</b>. Provides tools for developing Java SE, Java EE, and web applications. This download option also includes the GlassFish V2 UR1 application server   and Apache Tomcat software. </li>

<li><b>Mobility</b>. Supports Java ME application development and includes the Mobility pack for creating MIDP applications for mobile devices. Note that some Mobility features, such as the Wireless Connection wizard, require features that are available in the Web &amp; Java EE pack. If you plan to use these features, download the &quot;All&quot; installation option.</li>
<li><b>Java SE</b>. Provides all standard features for Java SE development. Support for NetBeans Plugin Development is also included.    </li>
<li><b>Ruby</b>. Provides tools for Ruby development and supports Rails and JRuby.  </li>
<li><b>C/C++</b>. Supports development in the C/C++ language. </li>

<li><b>All. </b> This is a full download option for NetBeans IDE 6.0.1.   It contains all the runtimes and packs available for the IDE.  Includes  tools for Service Oriented Architecture development and constructing Unified Modeling Language diagrams. </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 Web &amp; Java EE or the &quot;All&quot; download options, you can choose exactly what tools and runtimes to install. </p>
<p>For the Web &amp; Java EE download option, at the Welcome page select the servers that you want to use.</p>
<p>For the &quot;All&quot; download option, click Customize at the Welcome page 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.14 is included in the &quot;Web &amp; Java EE&quot; and &quot;All&quot; download options but it is installed by default from the &quot;Web &amp; Java EE&quot; option only. To install Apache Tomcat from the &quot;All&quot; download, launch the installer and select Apache Tomcat 6.0.14 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">Installing and Configuring C/C++ Support</a>. </li>
  <li>If you want to use the Sun Java System Access Manager, in addition to the &quot;All&quot; download option for the IDE, you need to install Java Application Platform SDK Update 3 or later from
  <a href="http://java.sun.com/javaee/downloads/index.jsp">http://java.sun.com/javaee/downloads/index.jsp</a>. Ensure that you download the version by using the <tt>Download</tt> or <tt>Download with JDK</tt> buttons. For more information about the steps required to install the Access Manager, see
  <a href="https://netbeans.org/kb/archive/index.html">Installing the Sun Java System Access Manager</a>. <i>(Archived 6.0 JavaEE document: identity-amsecurity.html)</i> </li>

  <li>To develop Mobility applications for CDC devices  you need to download and install the <a href="http://java.sun.com/products/cdctoolkit/download-1_0.html"> Sun Java Toolkit 1.0 for CDC </a>. After installation you must <a href="https://netbeans.org/kb/archive/index.html"> register the CDC platform</a> in the IDE. <i>(Archived 6.0 Mobility document: cdcemulator-setup </i></li>
  <li>For  Mac OS X, you cannot customize the NetBeans IDE installation. </li>
</ol>
<p align="center"><a href="#top">top</a></p>
<h2><a name="startdownload" id="startdownload"></a>Starting the Download</h2>

<ol>
<li>Navigate to the NetBeans IDE 6.0.1 <a href="../../../downloads/index.html">Download</a> page.</li>
<li>In the upper right area of the page, select your platform from the drop-down list.</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,  see the <a href="relnotes.html">NetBeans IDE 6.0.1 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. <br>
<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><br>
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, select the acceptance checkbox, and click Next.</li>
<li>At the NetBeans IDE installation page, do the following:<br>
<ol type="a">
<li>Accept the default installation directory for the NetBeans IDE or specify another directory.<br>
<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.</li>
<li>Accept the default JDK installation to use with the NetBeans IDE or select a different installation from the drop-down list.<br>

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 or cancel the current installation, install the required JDK version, and restart this installation.</li>
<li>Click Next.</li>
</ol>
</li>
<li>If the GlassFish application server installation page opens, do the following:<br>
<ol type="a">
<li>Accept the default installation directory for the server or specify another installation directory. <br>
<b>Note:</b> The installation directory you specify must be empty, and the user profile you are using to run the installer must have read/write permissions for this directory. </li>
<li>From the list of compatible JDK installations, choose the JDK you want the application server to use or click the Browse button to specify another JDK installation.</li>

<li>Change the username and password for the default server domain or accept the defaults and click Next.<br>
The default username and password are <tt>admin</tt> and <tt>adminadmin</tt>.</li>
<li>Verify the default port values (<tt>HTTP</tt>, <tt>HTTPS</tt>, and <tt>Admin</tt>) for the server or change them if necessary.</li>

<li>Click Next.</li>
</ol>
</li>
<li>If the Apache Tomcat installation page opens, 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>
<li>When the installation is complete:
  <ol type="a">
      <li>If   the GlassFish application server has been installed, to register it select the Register the Sun Java System Application Server and NetBeans IDE after finishing the installer checkbox.</li>
      <li>If the GlassFish application server has not been installed,  select the Register the  NetBeans IDE after finishing the installer checkbox to register the NetBeans IDE.</li>
    <li>Click Finish to exit the wizard.</li>
  </ol>
</li>
<li>If you selected the Register... checkbox at the previous step, the Registration page opens in the browser. Click Register.</li>
<li>Enter your Sun Online Account or create it on the <a href="http://www.sun.com">www.sun.com</a> page, which is accessible via a link.  </li>
</ol>
<p><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>
<p><b>Note:</b> If you have not registered the GlassFish application server right after the installation, you can do it when you run the NetBeans IDE or open the <span class="style2">Admin console</span> of the GlassFish application server. </p>
<p><b>Note:</b> If you have not registered the NetBeans IDE 6.0.1 right after the installation, you can do it when you run the NetBeans IDE.</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. <br>
    <br>
    <b> Note</b>: The &quot;All&quot; download option contains the following four packages: NetBeans IDE, GlassFish V2 UR1 application server, Apache Tomcat, and OpenESB software. You need to run them one after another to install the fully featured NetBeans IDE on Mac OS X. OpenESB must be installed after the installation of the GlassFish application server software. <br>

  </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>Enter the administrator's name and password for your system and click OK to begin the installation. <br>
  </li>
</ol>

<p align="center"><a href="#top">top</a></p>
<h2><a name="uninstallation">Uninstalling the Software</a></h2>
<div>
<h3><a name="uninstall_windows">Microsoft Windows</a></h3>
<p>If necessary, you can uninstall the NetBeans IDE, the GlassFish application server, and Apache Tomcat using the following procedures.</p>
<p><b>To uninstall the IDE</b>:</p>
<ol>
  <li>Shut down the IDE.<br>
  </li>

  <li>From the Control Panel, select Add or Remove Programs, then select NetBeans IDE 6.0.1 and click Remove.</li>
</ol>
<p><b>To uninstall the GlassFish application server: </b></p>
<ol>
  <li>Shut down the IDE.</li>
  <li>From the Control Panel, select Add or Remove Programs, then select GlassFish V2 UR1 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.14 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 application server, 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/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. <br>
  </li>
  <li>After uninstallation completes, click Finish.</li>
</ol>
<p><b>To uninstall the GlassFish application server</b>:</p>
<ol>
  <li>Shut down the IDE.</li>
  <li>Locate the application server installation directory.<br>
  <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.</p>
  <table>

    <tbody>
      <tr>
        <td width="70">Platform</td>
    <td width="101">Installing As...</td>
    <td width="264">SOA Installation</td>
    </tr>
      <tr>

        <td>Solaris&nbsp;OS&nbsp;<br></td>
    <td>root</td>
    <td><tt>/opt/glassfish-v2ur1</tt></td>
    </tr>
      <tr>

        <td>Solaris&nbsp;OS<br>

          Linux</td>
    <td>user</td>
    <td><tt>~/glassfish-v2ur1</tt></td>
    </tr>
      <tr>
        <td>Linux</td>
        <td>root</td>

        <td><tt>/usr/local/glassfish-v2ur1</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. <br>
  </li>
  <li>After uninstallation completes, click Finish.</li>
</ol>
<p><b>Note:</b> The GlassFish application server is required for SOA functionality. When you uninstall the application server, the SOA functionality is automatically removed from the NetBeans IDE installation.</p>
<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. <br>
  </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.    <br>
  Note that the default location for the IDE and application server is <tt>/Applications/NetBeans/</tt>.  </li>
</ol>

<p>&nbsp; </p>
</div>
<p align="center"><a href="#top">top</a></p>
<h2><a name="upgrading"></a>Upgrading and Coexisting with Previous Versions</h2>
<p>If you have previous versions of NetBeans IDE 6.0 (M9 Preview, Beta 1, Beta 2, RC1, or RC2) and want to upgrade to the NetBeans IDE 6.0.1, we recommend that you uninstall the previous version. To do this, perform the following steps:
<ol>
  <li>Uninstall the previous 6.0 version from your system.<br>
  Follow the uninstallation procedure as described in this document. For details, see <a href="#uninstallation">Uninstalling the Software</a>.</li>

  <li>Run the NetBeans IDE 6.0 installer and install the IDE as described in  <a href="#installation">Installing the Software</a>.</li>
</ol>
<p>NetBeans IDE 5.5 or 5.5.1, or 6.0 can coexist with NetBeans IDE 6.0.1 on the same system. You do not have to uninstall the 5.5 or 5.5.1, or 6.0 versions in order to install or run NetBeans IDE 6.0.1. </p>
<p>If you have NetBeans IDE 5.5 or 5.5.1, during the first run of NetBeans IDE 6.0.1, you will be able to choose whether to import user settings from the previous user directory.</p>
<p>If you have NetBeans IDE 6.0, during the first run of NetBeans IDE 6.0.1 no questions about user setting will be asked because both versions use the same user directory. </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>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: <br>
    <tt>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall</tt> <br>
    <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>
<br>
<ul>
<li><a href="index.html">NetBeans IDE 6.0.1 Information</a></li>
<li><a href="http://download.netbeans.org/netbeans/6.0/final">NetBeans IDE 6.0.1 Download page</a></li>
<li><a href="relnotes.html">NetBeans IDE 6.0.1 Release Notes<br>
</a></li>
</ul>
<hr class="light">
<br>

    <div class="feedback-box"><a href="https://netbeans.org/about/contact_form.html?to=3&subject=Feedback: NetBeans IDE 6.0 Installation Instructions">Send Us Your Feedback</a></div>
<br style="clear:both;">
<p align="center"><a href="#top">top</a></p>
</body>
</html>
