<html>
<head>
<title>NetBeans IDE 4.0 Installation Instructions</title>
<meta name="description" content="A guide to installing the NetBeans IDE on various OSs">
<link rel="stylesheet" type="text/css" href="../../../netbeans.css">
<meta name="AUDIENCE" content="NBUSER">
<meta name="TYPE" content="ARTICLE">
<meta name="TOPIC" content="GENERAL">
</head>
<body>
<h1>NetBeans<sup><small>TM</small></sup> IDE 4.0 Installation Instructions </h1>
<p><b>Installation details for:</b></p>
<ul>
	<li><a href="#windows">Windows</a></li>
	<li><a href="#solaris">Solaris&trade; Operating System
			(Solaris OS)</a></li>
	<li><a href="#linux">Linux</a></li>
	<li><a href="#macintosh">Macintosh OS X</a></li>
	<li><a href="#other">Other Operating Systems </a></li>
   <li><a href="#archives"> Archive Distributions </a></li>
</ul>
<p>For system requirements and other information, such as launching the IDE with
	different startup parameters, see the <a href="relnotes.html">Release Notes</a>. 
<br>
<a name="windows">
<h2>Windows</h2>
</a>
<p>On Microsoft Windows machines, the preferred method of  installing
	NetBeans IDE is using the self-extracting installer.</p>
<blockquote>
	<p><b>Using the Windows Installer</b></p>
	<p>To install NetBeans IDE:</p>
	<ol>
		<li>Once you have downloaded the installer file, double-click the installer's
			icon to launch the installation wizard.
		<li>Specify the directory within which to install NetBeans IDE.</li>
		<li>Specify the Java&trade; 2 Software Development Kit
			to run the IDE on.</li>
	</ol>
	<p><b>Launching NetBeans IDE</b></p>
	<p>To start the IDE, do one of the following:</p>
	<ul>
		<li>Double-click the NetBeans IDE icon on your desktop.</li>
		<li>From the Start menu, select NetBeans IDE 4.0&nbsp;&gt;&nbsp;NetBeans IDE.</li>
	</ul>
	<!--<p><b>Using Archive Installations on Windows </b></p>
	<p>While the installer described above is the preferred method of installation
		on Microsoft Windows machines, you can also install NetBeans IDE using a <tt>tar.gz</tt> or <tt>zip</tt> file.
		Common archive utilities like Winzip can work with both of these file types. </p>
	<p>To install NetBeans IDE:</p>
	<ol>
		<li>Locate the archive that you have downloaded and double-click it to open
			your archive file tool.</li>
		<li>Using your archive tool, extract all files to an empty directory, such
			as <tt>C:\NetBeans IDE 4.0</tt>.</li>
	</ol>
	<p>To launch NetBeans IDE:</p>
	<ol>
		<li>Navigate to the <tt>bin</tt> subdirectory of your NetBeans IDE installation.</li>
		<li>Double-click <tt>runide.exe</tt> to start NetBeans IDE.</li>
	</ol>
	</ul>-->
</blockquote>
<br>
<a name="solaris">
<h2>Solaris<sup><small>TM</small></sup> Operating System (Solaris OS) </h2>
</a>
<p>On machines running Solaris&trade; operating system,
	the binary installer is the preferred method for installing NetBeans IDE. </p>
<blockquote>
	<p><b>Using the Solaris Installer</b></p>
	<p>To install NetBeans IDE:</p>
	<ol>
		<li>Navigate to the directory that contains the installer.</li>
		<li>If necessary, change the installer file's permissions to make the binary
			executable by typing from a command prompt:
			<blockquote> <code> $&nbsp;chmod&nbsp;+x&nbsp;<i>your_binary_executable</i></code></blockquote>
			<p><b>Note:</b> be sure to replace <code><i>your_binary_executable</i></code> with the actual filename
				of the  binary that you downloaded.</p>
		</li>
		<li>Launch the installer by typing from a command prompt:
			<blockquote> <code>$&nbsp;./<i>your_binary_executable</i></code></blockquote>
			<p><b>Note:</b> again, be sure to replace <code><i>your_binary_executable</i></code> with the actual
				filename of the binary that you downloaded.</p>
		</li>
	</ol>
	<blockquote>The installer  searches for  installed JDKs and prompts you to specify which
	   the installer should use. You can also specify which JDK
		the installer should use  from the command
	   line. For example:
	   <blockquote><code> $&nbsp;./<i>your_binary_executable</i>&nbsp;-is:javahome&nbsp;<i>path_to_your_jdk</i></code></blockquote>
	</blockquote>
	<p><b>Launching NetBeans IDE</b></p>
	<p>To start the IDE:
	<ol>
		<li>Navigate to the <tt>bin</tt> subdirectory of your installation.
		<li>Execute the launcher script by typing <tt>./netbeans</tt>.
	</ol>	
	<!--<p><b>Using Archive Installations on Solaris </b></p>
	<p>To install NetBeans IDE:
	<ol>
		<li>Navigate to the directory where you downloaded the archive file.</li>
		<li>Untar the archive distribution to a clean directory by typing the following
			from a command prompt:
			</p>
			<blockquote><code> $ gzip -d <i>NetBeans.tar.gz</i> </code></blockquote>
			<p><b>Note:</b> be sure to replace <i>NetBeans.tar.gz</i> with the actual
				file name. 
		</li>
	</ol>
	<p><i><b>Note</b>: Solaris users should use GNU tar for <tt>tar.gz</tt> files
			to ensure that the whole archive is unpacked.</i></p>-->
</blockquote>
<br>
<a name="linux">
<h2>Linux </h2>
</a>
<p>On  Linux machines,   the binary
installer is the preferred method for installing NetBeans IDE. </p>
<blockquote>
	<p><b>Using the Linux Installer</b></p>
	<p>To install NetBeans IDE:</p>
	<ol>
		<li>Navigate to the directory that contains the installer.</li>
		<li>If necessary, change the installer file's permissions to make the binary
			executable by typing from a command prompt:
			<blockquote> <code> $&nbsp;chmod&nbsp;+x&nbsp;<i>your_binary_executable</i></code></blockquote>
				<p><b>Note:</b> be sure to replace <code><i>your_binary_executable</i></code> with the actual filename
						of the binary that you downloaded.</p>
			
		</li>
		<li>Launch the installer by typing:
			<blockquote> <code>$&nbsp;./<i>your_binary_executable</i></code></blockquote>
			<p><b>Note:</b> again, be sure to replace <code><i>your_binary_executable</i></code> with the actual
				filename of the binary that you downloaded.</p>
		</li>
	</ol>
	<blockquote>The installer  searches for  installed JDKs and prompts you to specify which
	   the installer should use. You can also specify which JDK
		the installer should use  from the command
	   line. For example:
	   <blockquote><code> $&nbsp;./<i>your_binary_executable</i>&nbsp;-is:javahome&nbsp;<i>path_to_your_jdk</i></code></blockquote>
	</blockquote>

	<!--<p><b>Using Archive Installations on Linux </b></p>
	<p>To install NetBeans IDE:</p>
	<ol>
		<li>Navigate to the directory where you downloaded the archive file.</li>
		<li>Use the appropriate tools to untar or unzip the archive distribution to
			a clean directory by typing the following from a command prompt:
			</p>
			<blockquote><code> $ gzip -d <i>NetBeans.tar.gz</i> <br>
				$ tar xf <i>NetBeans.tar</i> </code></blockquote>
		</li>
	</ol>
	<p>To launch NetBeans IDE:</p>
	<ol>
		<li>Change directories to the <tt>bin</tt> subdirectory of your installation</li>
		<li>Execute the launcher script by typing <tt>./runide.sh</tt>.</li>
	</ol>-->

<p><b>Launching NetBeans IDE</b></p>
<p>To start the IDE:
<ol>
   	<li>Navigate to the <tt>bin</tt> subdirectory of your installation.
	<li>Execute the launcher script by typing <tt>./netbeans</tt>.
</ol>
</blockquote>
<br>
<a name="macintosh">
<h2>Macintosh OS X</h2>
</a>
<p>On   Macintosh OS X,  NetBeans is packaged
	as a native  application bundle. The preferred method of installing NetBeans
	IDE is using the tarball  (<tt>.tar.gz</tt>) file.</p>
<blockquote>
	<p><b>Using the tarball (<tt>.tar.gz</tt>) file</b></p>
	<p>To install NetBeans IDE:
	<ol>
		<li>Download the tarball to the desired location on your system. 
		<li>Double-click the file to unpack
			the contents on your system.            
  	</ol>
	<p><b>Launching NetBeans IDE</b>   
	<p>To start the IDE:
   <ul>
		<li>Double-click  the NetBeans application icon.
	</ul>
	<!--<p><b>Using Archive Installations on the Mac OS platform</b></p>
	<p>To install NetBeans IDE:</p>
	<ol>
		<li>Open the Terminal application and change directories to where you would
			like to install the IDE.
		<li>On the command line type (replacing <i>NetBeans.tar.gz</i> with the actual
			filename of the distribution that you downloaded):
			<blockquote><code> gnutar -xvzf <i>netbeans.tar.gz</i> </code></blockquote>
		</li>
	</ol>
	<p>To launch NetBeans IDE:
	<ol>
		<li>Navigate to the <tt>bin</tt> subdirectory of your installation. </li>
		<li>Execute the <tt>runide.sh</tt> launcher script.</li>
	</ol>-->
</blockquote>
<br>
<a name="other">
<h2>Other Operating Systems</h2>
</a>
<p>If you are using an operating system for which there is no installer  you
	can still use NetBeans IDE by downloading and installing archive distributions.
	For more information, see the <a href="#archives">Archive
	Distributions</a> section below. </p>
<br>
<a name="archives">
<h2>Archive Distributions</h2>
</a>
<p>You can also install
	archive distributions of the IDE  if you want to test development builds or
	because you are using an operating system for which there is no installer.</p>
<blockquote>
	<p><b>Using Archive Distributions </b></p>
	<p>To Install NetBeans IDE: </p>
	<ol>
	<li>Navigate to the directory that contains the archive file.
	<li>Unpack the archive  using the appropriate utilities  for your system.
	</ol>
	<p><b>Launching NetBeans IDE</b> </p>
	<p>To launch NetBeans IDE:
	<ol>
		<li>Navigate to the <tt>bin</tt> subdirectory of your
		NetBeans IDE installation.</li>
		<li>Execute the appropriate launcher for your system. 
   	</li>
	</ol>
	   <p>The following launchers
				are included in the archive distributions:
	</p>
	<blockquote> 
		<p><tt>netbeans.exe</tt> - Windows <br>
				<tt>netbeansw.exe</tt> - Windows (no console window) <br>
		<tt>netbeans</tt> - UNIX, Linux <br>
		<tt>macosx_launcher.dmg</tt> - Mac Os<br>
				<tt>netbeans.cmd</tt> - OS/2 </p>
		<!--<tt>netbeansopenvms.com</tt> - OpenVMS --></blockquote>

	<p>If there is no specific launcher for your  operating system, you may need
		to create one by modifying the appropriate script.
		If your machine supports JDK 1.4.2 or greater you should, however, be
		able to run the IDE.
	<p><i><b>Note</b>: If you create a launcher, you can contribute
				it to the NetBeans project. For more information, see <a href="https://netbeans.org/community/contribute/index.html">Contributing to netbeans.org</a>.</i>
</blockquote>
</body>
</html>
