<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
  Copyright 2013, 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="http://www.netbeans.org/favicon.ico" type="image/x-icon">
<title>NetBeans IDE 7.4 Installation Instructions</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
<meta name="description" content="Installation Instructions for NetBeans IDE 7.4">
<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.4 Installation Instructions</h1>
<div class="articledate" style="margin-left: 0px;">Last updated: <!-- #BeginDate format:Am1 -->October 19, 2013<!-- #EndDate --> </div>
<p>This document describes how to install NetBeans IDE 7.4 on your system. 
    Please see the NetBeans IDE 7.4 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.4 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) 7 Update 10 (or later) is required to install the NetBeans IDE. 
    You can download the latest update of JDK 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) 7 to be installed and run. 
    JDK 7 is required if you are planning to use any of the Java features. </p>
<p>JDK 7 Update 6 (or newer) is required to use JavaFX 2.2 (or newer) features in the NetBeans IDE 7.4.</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>Unlike previous versions of NetBeans IDE, NetBeans IDE 7.4 does not require that you 
        set up an &quot;FX-enabled&quot; Java platform in order to utilize JavaFX support in the IDE. 
        You can develop JavaFX projects in the IDE if you install any standard Java platform that is JDK 7 Update 6 or newer.</li>
     <li>To use JavaFX features in the NetBeans IDE, we strongly recommend that you upgrade your JDK version to JDK 7 Update 10 or newer.</li>
   </ul>
   
<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="/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 Platform development and JavaFX 2.2 SDK (or newer).</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.2 SDK (or newer). 
       This download option also includes GlassFish Server Open Source Edition 4.0, and Apache Tomcat 7.0.41 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>GlassFish Server Open Source Edition 4.0 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 GlassFish Server Open Source Edition 4.0, select the appropriate option below:
    <ul> 
  <li>from the <b>Java EE</b> download, launch the installer and select the GlassFish Server Open Source Edition 4.0 checkbox at the Welcome page;</li>
  <li>from the <b>All</b> download, launch the installer and select GlassFish Server Open Source Edition 4.0 in the Customize Installation dialog box.</li>
  </ul>
  You should change the default administrator password after you install the GlassFish server, refer to <a href="http://wiki.netbeans.org/FaqSettingGlassFishPassword">FaqSettingGlassFishPassword</a> for details.</li>
  <li>Apache Tomcat 7.0.41 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.41 checkbox at the Welcome page;</li>
  <li>from the <b>All</b> download, launch the installer and select Apache Tomcat 7.0.41 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>For HTML5 and JavaScript development for mobile devices (Android and iOS), you need to additionally install SDKs and other development tools for the target development platform.
      For more information, refer to the <a href="http://wiki.netbeans.org/MobileBrowsers">Mobile Browsers</a> wiki page.</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="/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>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.
          <p class="notes"><b>Note:</b> If the JDK version is older than the recommended JDK 7 Update 10, download and install the latest JDK update from <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java SE Downloads</a> page and restart the NetBeans IDE installer.</p>
      </li>
       </ol></li>
   <li>If the GlassFish Server Open Source Edition 4.0 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, do the following:
   <ol type="a">
     <li>Verify that the list of components to be installed is correct.</li>
     <li>Select the Check for Updates check box if you want to check the Update Center for possible updates and have the JUnit library installed during the installation (provided you accepted the license in step 5.)</li>
     <li>Verify that you have adequate space on your system for the installation.</li>
   </ol>
   </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.
  <p class="notes"><b>Note:</b> If the JDK version is older than the recommended JDK 7 Update 10, download and install the latest JDK update from <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java SE Downloads</a> page and restart the NetBeans IDE installer. </p></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_10</tt> or similar.</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 4.0, 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.4 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 4.0: </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 4.0 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.41 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 4.0, 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 4.0</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 4.0 Installation</th>
        </tr>
        <tr class="tbltd0">
          <td>Windows</td>
          <td>user with admin rights</td>
          <td><tt>%ProgramFiles%\glassfish-4.0</tt></td>
        </tr>
        <tr class="tbltd1">
          <td>Windows</td>
          <td>user</td>
          <td><tt>%USERPROFILE%\glassfish-4.0</tt></td>
        </tr>
        <tr class="tbltd0">
            <td>Solaris&nbsp;OS&nbsp;</td>
            <td>root</td>
			 <td><tt>/opt/glassfish-4.0</tt></td>
        </tr>
        <tr class="tbltd1">

            <td>Solaris&nbsp;OS, Linux</td>
            <td valign="top">user</td>
			<td valign="top"><tt>~/glassfish-4.0</tt></td>
        </tr>
        <tr class="tbltd0">
            <td>Linux</td>
            <td>root</td>
			<td><tt>/usr/local/glassfish-4.0</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.41 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.41</tt></td>
        </tr>
        <tr class="tbltd1">
          <td>Windows</td>
          <td>user</td>
          <td><tt>%USERPROFILE%\Apache Software Foundation\Apache Tomcat 7.0.41</tt></td>
        </tr>
        <tr class="tbltd0">
            <td>Solaris&nbsp;OS&nbsp;</td>
            <td>root</td>
			 <td><tt>/opt/apache-tomcat-7.0.41</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.41</tt></td>
        </tr>
        <tr class="tbltd0">
            <td>Linux</td>
            <td>root</td>
			<td><tt>/usr/local/apache-tomcat-7.0.41</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, delete the installation directories of the IDE. </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.4 on the same system. You do not have to uninstall  the earlier versions in order to install or run NetBeans IDE 7.4. </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.4  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.4 Release Information</a></li>
<li><a href="relnotes.html" target="_blank">NetBeans IDE 7.4 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="http://www.netbeans.org/about/contact_form.html?to=3&subject=Feedback:%20NetBeans%20IDE%207.4%20Installation%20Instructions">Send Us Your Feedback</a>
</div>
<br style="clear:both;">
<p align="center"><a href="#top">top</a></p>
</body>
</html>
