<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
  Copyright 2009 Sun Microsystems, Inc. 
  All Rights Reserved.
-->

<html>
<head>
<link rel="stylesheet" type="text/css" href="../../../netbeans.css">
<link rel="shortcut icon" href="https://netbeans.org/favicon.ico" type="image/x-icon" >
<title>NetBeans IDE 6.7.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.7">
<meta name="keywords" content="NetBeans, IDE, free, open source, install notes, developer, installer, engine, NetBeans, NetBeans IDE, NetBeans installer, NetBeans development environment, CSS, installer API" >
<style type="text/css">
<!--
.style2 {color: #000000}
-->
</style>
</head>
<body>
<a name="top"></a>
<h1>NetBeans IDE 6.7.1 Installation Instructions</h1>
<div class="articledate" style="margin-left: 0px;">Last updated: July 21, 2009</div>
<p>This document describes how to install NetBeans IDE 6.7.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.7.1 Release Notes</a>. See the <a href="index.html">NetBeans IDE 6.7.1 Release Information</a> page to learn about the new features included in this release of the IDE. </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>
<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 Coexisting with Previous Versions</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>Before you install the IDE, the <span class="style2">Java SE Development Kit (JDK) 5 Update 19 (version 1.5.0_19) or newer (including JDK 6 Update 14)</span> must be installed on your system. If you do not have an installation of JDK, you cannot proceed with the installation. You can download the latest JDK version at <a href="http://java.sun.com/javase/downloads/index.jsp">http://java.sun.com/javase/downloads</a>.
<p>For the PHP, Ruby, and C/C++ download options, you can install the JRE instead of the JDK. However, if you are planning to use any of the Java features, you will need the JDK. </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.7.1 <a href="https://netbeans.org/downloads/index.html" 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</b>. Provides tools for developing Java SE, Java EE and Java ME applications. This download option also includes <span class="style2">Sun GlassFish Enterprise Server</span> v2.1.1, Sun GlassFish Enterprise Server v3 Prelude, and Apache Tomcat software. </li>
<li><strong>JavaFX</strong>. Provides support for JavaFX multi-platform rich application development. </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. Also contains Sun GlassFish Enterprise Server v3 Prelude. </li>
<li><b>PHP</b>. Provides tools for PHP development.</li>
<li><b>C/C++</b>. Supports development in the C, C++, and Fortran languages. </li>

<li><b>All. </b> This is a full download option, which contains all the runtimes and packs 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.18 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.18 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><span class="style2">You can also download <a href="#install_zip">a platform-independent zip file</a> and run the NetBeans IDE executable file. </span>Note that the runtimes, such as the GlassFish application servers and Apache Tomcat, are available only with platform-specific installers. </li>
 <!-- <li>To develop Java ME applications for CDC devices you need to download and install the <a href="http://java.sun.com/javame/downloads/sdk30.jsp"> 
  Java ME SDK 3.0</a>. After installation you must <a href="http://wiki.netbeans.org/FaqJavaMESDKinstall"> register the Java ME platform </a> in the IDE.</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.7.1 <a href="https://netbeans.org/downloads/index.html" target="_blank">Download page</a>.</li>
<li>In the upper right area of the page, select the language and platform from the drop-down list. <br>
  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, see the <a href="relnotes.html">NetBeans IDE 6.7.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 <span class="style2">Sun GlassFish Enterprise Server v2.1.1</span> installation page opens, do the following:<br>
<ol type="a">
<li>Accept the default installation directory for the application 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 Sun GlassFish Enterprise Server v3 Prelude 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>
<!-- <li>When the installation is complete:
  <ol type="a">
      <li>If <span class="style3">one of the GlassFish application servers </span>has been installed, to register it select the <span class="style3">Register the Sun Java System Application Server</span> 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>When the installation is complete, click Finish to exit the wizard.</li>
</ol>
<!-- <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 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>
<!-- <p class="notes"><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 class="notes"><b>Note:</b> If you have not registered the NetBeans IDE 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. </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> Note that the runtimes, such as the GlassFish application server and Apache Tomcat, are available only with platform-specific installers.</span></p>
<p><span class="notes"><b>Note:</b> If the compatible JDK installation cannot be found, you might need to manually add the path to the JDK installation directory:</span></p>
<ol>
  <li>Open the <tt>netbeans.conf</tt> file located at <tt>netbeans/etc</tt> in a text editor.</li>
  <li>Enter the location of the compatible JDK installation as the value of the <tt>netbeans_jdkhome</tt> option.</li>
  <li>Save the <tt>netbeans.conf</tt> file and run the  executable file at <tt>netbeans/bin</tt>.</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 Sun GlassFish Enterprise Server v2.1.1, the Sun GlassFish Enterprise Server v3 Prelude, 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.7.1 and click Remove.</li>
</ol>
<p><b>To uninstall Sun GlassFish Enterprise Server v2.1.1: </b></p>
<ol>
  <li>Shut down the IDE.</li>
  <li>From the Control Panel, select Add or Remove Programs, then select Sun GlassFish Enterprise Server v2.1.1 and click Remove.</li>
</ol>
<p><b>To uninstall the Sun GlassFish Enterprise Server v3 Prelude: </b></p>
<ol>
  <li>Shut down the IDE.</li>
  <li>From the Control Panel, select Add or Remove Programs, then select Sun GlassFish Enterprise Server v3 Prelude 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.18 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 Sun GlassFish Enterprise Server v2.1.1, the Sun GlassFish Enterprise Server v3 Prelude, 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 Sun GlassFish Enterprise Server v2.1.1 or Sun GlassFish Enterprise Server v3 Prelude</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 for various platforms.</p>

  <table>
    <tbody>
        <tr class="tblheader">
            <th width="70">Platform</th>
            <th width="101">Installing As...</th>
            <th width="264"><p>Sun GlassFish Enterprise Server v2.1.1 Installation</p>              </th>
			<th width="264">Sun GlassFish Enterprise Server v3 Prelude Installation</th>
        </tr>
        <tr class="tbltd0">
          <td>Windows</td>
          <td>user with admin rights</td>
          <td><tt>%SystemDrive%\Sun\AppServer</tt></td>
          <td><tt>%ProgramFiles%\sges-v3-prelude</tt></td>
        </tr>
        <tr class="tbltd0">
          <td>Windows</td>
          <td>user</td>
          <td><tt>%SystemDrive%\Sun\AppServer</tt></td>
          <td><tt>%USERPROFILE%\sges-v3-prelude</tt></td>
        </tr>
        <tr class="tbltd0">
            <td>Solaris&nbsp;OS&nbsp;<br></td>
            <td>root</td>
            <td><tt>/opt/SUNWappserver</tt></td>
			 <td><tt>/opt/sges-v3-prelude</tt></td>
        </tr>
        <tr class="tbltd1">

            <td>Solaris&nbsp;OS,<br>Linux</td>
            <td valign="top">user</td>
            <td valign="top"><tt>~/SUNWappserver</tt></td>
			<td valign="top"><tt>~/sges-v3-prelude</tt></td>
        </tr>
        <tr class="tbltd0">
            <td>Linux</td>
            <td>root</td>
            <td><tt>/usr/local/SUNWappserver</tt></td>
			<td><tt>/usr/local/sges-v3-prelude</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>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>
<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 Coexisting with Previous Versions</h2>
<p>NetBeans IDE 5.x, 6.0, 6.1, and 6.5 can coexist with NetBeans IDE 6.7.1 on the same system. You do not have to uninstall the previous versions in order to install or run NetBeans IDE 6.7.1. </p>
<p>If you have NetBeans IDE 5.x, 6.0, 6.1, or 6.5 installed you will be able to choose whether or not to import the user settings from the existing user directory when you run NetBeans IDE 6.7.1 for the first time.</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: <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.7.1 Release Information</a></li>
<li><a href="https://netbeans.org/downloads/index.html">NetBeans IDE 6.7.1 Download page</a></li>
<li><a href="relnotes.html">NetBeans IDE 6.7.1 Release Notes</a></li>
<li><a href="http://wiki.netbeans.org/NetBeansUserFAQ#section-NetBeansUserFAQ-Installation" target="_blank">NetBeans IDE User FAQ, Installation section</a> </li>
</ul>
<hr class="light">
<div class="feedback-box"><a href="https://netbeans.org/about/contact_form.html?to=3&subject=Feedback: NetBeans IDE 6.7.1 Installation Instructions">Send Us Your Feedback</a></div>
<br style="clear:both;">
<p align="center"><a href="#top">top</a></p>
</body>
</html>
