<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>NetBeans IDE 4.0 Release Notes and System Requirements</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../netbeans.css">
</head>
<body>

<h1>NetBeans<sup class="tmtext">TM</sup> IDE 4.0  Release Notes</h1>
<!--<h2>NetBeans<sup class="tmtext">TM</sup> IDE 4.0 BETA</h2>-->
<p>Last Updated: 13 December 2004</p>
<h2>Contents</h2>
<dl>
  <dt><a href="#Introduction">Introduction</a>
  <dt><a href="#WhatsChanged">What Has Changed</a></dt>
  <dd><a href="#WhatsChanged36">New in the 4.0 Release</a></dd>
  <dd><a href="#WhatsChangedAPI">API Changes</a></dd>
  <dt><a href="#SystemRequirements">System Requirements</a></dt>
  <dd><a href="#min_hw">Minimum Hardware Configuration</a> </dd>
  <dd><a href="#req_hw">Recommended Hardware Configuration</a> </dd>
  <dd><a href="#req_os">Operating System</a></dd>
  <dd><a href="#req_sw">Software</a></dd>
  <dt><a href="#standards">Supported Technologies</a></dt>
  <dd><a href="#standards">Web Standards</a></dd>
  <dd><a href="#browsers">Web Browsers</a></dd>
  <dd><a href="#databases">Databases</a></dd>
  <dd><a href="#mobility">J2ME MIDP</a></dd>
  <dd><a href="#other">Other</a></dd>
  <!--    <dd><a href="#Installation">Installation</a></dd>-->
  <dt><a href="#Startup">Launching the IDE</a></dt>
  <dd><a href="#launch">Launchers</a></dd>
  <dd><a href="#startup_param">Startup Parameters</a></dd>
  <dt><a href="#Compatibility">Upgrading from Version 3.6 </a></dt>
  <dt><a href="#KnownProblems">Known Issues </a></dt>
  <dt><a href="#Documentation">Documentation</a></dt>
  <dt><a href="#MoreInfo">More Information</a></dt>
</dl>
<!--<hr>-->
<br>
<a name="Introduction"><h2>Introduction</h2></a>
<blockquote>
  <p> Welcome to NetBeans<sup class="tmtext">TM</sup> IDE 4.0. NetBeans
    IDE is a modular, standards-based integrated development environment (IDE),
    written in the Java<sup class="tmtext">TM</sup> programming language. The
    NetBeans project consists of: </p>
  <ul>
    <li>An <a href="https://netbeans.org/features/ide/index.html">open source
        IDE</a> written in the Java programming language.</li>
    <li>An <a href="https://netbeans.org/features/platform/index.html">application
        platform</a>, which can be used as a generic framework to build any kind
        of application.</li>
    <!--TODO(tm) : rewrite sentence to be more descriptive-->
  </ul>
  <p>For information about the NetBeans Mobility Pack 4.0 see the <a href="#https://netbeans.org/community/releases/40/relnotes-mobility.html">J2ME
      MIDP Development Release Notes</a>.</p>
  <p><a href="https://netbeans.org/about/">Read more about the NetBeans project...</a> </p>
</blockquote>
<a name="WhatsChanged"><h2>What's Changed</h2></a>
<blockquote>
  <a name="WhatsChanged36"><h5 style="border-bottom:0">New in the 4.0 Release</h5></a>
  <p>The major new features in this release are:</p>
  <ul>
    <li>Project System based on Apache Ant</li>
    <li>Refactoring Support</li>
    <li>JDK 1.5 Support</li>
    <li>Web Application Development Improvements</li>
  </ul>
  <p>For an overview of the changes in this release, see the <a href="https://netbeans.org/community/releases/40/">NetBeans
  4.0 Release Plan</a>.</p>
  <p>For a full description of the changes in the
      4.0 release, see <a href="https://netbeans.org/community/releases/40/whats-new-40.html">What's
      New in NetBeans IDE 4.0</a>.</p>
  <a name="WhatsChangedAPI"><h5 style="border-bottom:0">API Changes</h5></a>
  <p>If you develop modules for the NetBeans project, check the <a href="https://netbeans.org/download/dev/javadoc/OpenAPIs/org/openide/doc-files/upgrade.html">NetBeans
      Upgrade Guide</a> for information on API changes.</p>
</blockquote>

<a name="SystemRequirements"><h2>System Requirements</h2></a>
<blockquote>
  <a name="min_hw"><h5 style="border-bottom:0">Minimum Hardware Configuration</h5></a>
  <ul>
    <li><b>Microsoft Windows operating systems</b>:
      <ul>
        <li><b>Processor</b>: 500 MHz Intel Pentium III workstation or equivalent</li>
        <li><b>Memory</b>: 384 megabytes</li>
        <li><b>Disk space</b>: 125 megabytes of free disk space
      </ul>
    </li>
	<br>
    <li><b>Solaris<sup class="tmtext">TM</sup> operating system</b>:
      <ul>
        <li><b>Processor</b>: 450 MHz Ultra<sup class="tmtext">TM</sup> 10 workstation
        or equivalent</li>
        <li><b>Memory</b>: 384 megabytes</li>
        <li><b>Disk space</b>: 125 megabytes of free disk space
      </ul>
    </li>
	<br>
    <li><b>Linux operating system</b>:
      <ul>
        <li><b>Processor</b>: 500 MHz Intel Pentium III workstation  or equivalent</li>
        <li><b>Memory</b>: 384 megabytes</li>
        <li><b>Disk space</b>: 125 megabytes of free disk space
      </ul>
    </li>
  </ul>

  <a name="req_hw"><h5 style="border-bottom:0">Recommended Hardware Configuration</h5></a>
  <ul>
    <li><b>Microsoft Windows operating systems</b>:
      <ul>
        <li><b>Processor</b>: 780 MHz Intel Pentium III workstation  or equivalent</li>
        <li><b>Memory</b>: 512 megabytes</li>
        <li><b>Disk space</b>: 125 megabytes of free disk space
      </ul>
    </li>
	<br>
    <li><b>Solaris<sup class="tmtext">TM</sup> operating system</b>:
      <ul>
        <li><b>Processor</b>: 500 MHz Ultra<sup class="tmtext">TM</sup> 60 workstation
        or equivalent</li>
        <li><b>Memory</b>: 512 megabytes</li>
        <li><b>Disk space</b>: 125 megabytes of free disk space
      </ul>
    </li>
	<br>
    <li><b>Linux operating system</b>:
      <ul>
        <li><b>Processor</b>: 800 MHz Intel Pentium III workstation  or equivalent</li>
        <li><b>Memory</b>: 512 megabytes</li>
        <li><b>Disk space</b>: 125 megabytes of free disk space
      </ul>
    </li>
  </ul>
  <a name="req_os"><h5  style="border-bottom:0">Operating System</h5>
  </a>
  <p>NetBeans IDE runs on operating systems that support the Java<sup class="tmtext">TM</sup> VM.
  Below is a list of platforms that NetBeans IDE has been tested on.
  <ul>
    <li>Microsoft Windows XP Professional SP1 </li>
    <li>Microsoft Windows 2000 Professional SP3 </li>
    <li>Solaris operating system (SPARC<sup>&reg;</sup> Platform Edition), versions
      8, 9, and 10</li>
    <li>Solaris operating system (x86 Platform Edition), versions 8, 9, and 10</li>
    <li>Red Hat Linux 9.0</li>
    <li>Red Hat Enterprise Linux 3
    <li>Sun Java Desktop System</li>
  </ul>
  <p>NetBeans IDE is also known to run on the following platforms:
  <ul>
    <li>Various other Linux distributions</li>
    <li>Mac OS X 10.1.1 or later</li>
    <li>Open VMS 7.2-1 or later</li>
    <li>Other UNIX<sup>&reg;</sup> platforms, such as HP-UX
    </li>
  </ul>
  <!--<p>If you know of other platforms that NetBeans IDE runs on, please let us know.</p>-->

  <a name="req_sw"><h5 style="border-bottom:0">Software</h5></a>
  <p>NetBeans IDE runs on the  J2SE JDK 5.0 (Java<sup class="tmtext">TM</sup> 2
    JDK, Standard Edition),  which consists of the
    Java Runtime Environment  plus
     developers tools for compiling, debugging, and running applications
  written in the Java<sup class="tmtext">TM</sup> language. NetBeans
  IDE 4.0 has  also been tested on J2SE SDK version 1.4.2. </p>
  <p><b>Note</b>: If you wish to run
    the IDE on earlier versions of the SDK or if you prefer to  install
    the IDE manually, you can download archived versions of the IDE at <a href="http://java.sun.com/products/archive/index.html">http://java.sun.com/products/archive/index.html</a>. </p>
  <p>Download the JDK for your platform from one of the sites listed below:
  <ul>
    <li><b>Solaris</b>: <a href="http://java.sun.com/j2se/1.5.0/">http://java.sun.com/j2se/1.5.0/</a></li>
    <li><b>Windows</b>: <a href="http://java.sun.com/j2se/1.5.0/">http://java.sun.com/j2se/1.5.0/</a></li>
    <li><b>Linux</b>: <a href="http://java.sun.com/j2se/1.5.0/">http://java.sun.com/j2se/1.5.0/</a></li>
    <li><b>Mac OS X</b>: <a href="http://support.apple.com/downloads/#java">http://support.apple.com/downloads/#java</a> (Mac
      OS X 10.3.4 or later). Mac OS upgrades are also available via Apple's Software
      Update mechanism.
<li><b>Open VMS</b>: <a href="http://h18012.www1.hp.com/java/download/index.html">http://h18012.www1.hp.com/java/download/index.html</a></li>
    <li><b>OS/2</b>: http://www.goldencode.com/company/software/j2se/index.html or http://www.innotek.de/products/javaos2/javaos2general_e.html. <br>
      If you get a NullPointerException when starting the IDE on
      OS/2, try changing the name of your <code>JAVA_HOME/jre</code> directory
      to  all capital letters. </li>
      <!--More information about using NetBeans IDE on Mac
      OS X is available at <a href="https://netbeans.org/kb/articles/mac.html">https://netbeans.org/kb/articles/mac.html</a></li>-->
  </ul>
  <!--TODO(tm) : is this still pertninent?-->
  <p><b>Note:</b> If the installer does not detect the JDK version that you
    wish to run the IDE on, you can  set the <code>--is:home <i>jdk_home_dir</i></code> parameter
    in the <code>netbeans.conf</code> file to point to the desired JDK. For more
    information about setting startup parameters, see <a href="#Startup">The
    Launcher and Startup Parameters</a>.</p>
</blockquote>
<a name="supported-technologies"><h2>Supported Technologies</h2></a>
<blockquote>
  <a name="standards"><h5 style="border-bottom:0">Web Standards</h5></a>
  <ul>
    <li>Java<sup class="tmtext">TM</sup> Servlet 2.3 and 2.4 specifications</li>
    <li>JavaServer Pages<sup class="tmtext">TM</sup> (JSP<sup class="tmtext">TM</sup>)
      technology specifications 1.2 and 2.0</li>
    <li>Deployment descriptor (web.xml) based on version 2.3 or 2.4 of the web
      application DTD</li>
    <li>Java<sup class="tmtext">TM</sup> 2 Platform, Enterprise Edition (J2EE<sup class="tmtext">TM</sup>)
      1.3 and 1.4</li>
    <li>Tomcat 5.0.28 release</li>
  </ul>
  <a name="browsers"><h5 style="border-bottom:0">Web Browsers</h5></a>
  <p>The following web browsers have been tested with NetBeans IDE:</p>
  <ul>
    <li>Netscape 7.1 </li>
    <li>Microsoft Internet Explorer 6</li>
    <li>Mozilla 1.5</li>
  </ul>
  <a name="databases"><h5 style="border-bottom:0">Databases</h5></a>
  <p>The following database servers have been tested with NetBeans IDE:</p>
  <ul>
    <li>IBM DB2 8.1</li>
    <li>Oracle 9i</li>
    <li>Pointbase 4.2 </li>
    <li>Microsoft SQL 2000 SP3 </li>
    <li>MySQL 4.x</li>
  </ul>
  <a name="mobility"><h5 style="border-bottom:0">J2ME MIDP 2.0</h5></a>
  <p>If you do J2ME MIDP development, you can download <a href="http://services.netbeans.org/downloads/all.php?b_id=259&src=1"> NetBeans
      Mobility Pack 4.0</a>.</p>
  <a name="other"><h5 style="border-bottom:0">Other</h5></a>
  <p>NetBeans IDE has also been tested with the following:</p>
  <ul>
    <li>Ant 1.5.3 and higher. (NetBeans IDE comes bundled with Ant 1.6.2. You
      can easily change Ant versions in the IDE's Ant settings.)</li>
    <li>CVS 1.11 </li>
    <li>Merant PVCS 7.5.1 </li>
    <li>Visual Source Safe 6.0</li>
  </ul>
</blockquote>
<a name="Startup"><h2>Launching the IDE </h2></a>
<p>To make the
	process of starting up the IDE more convenient, the  installation
	includes launchers for several platforms.

<blockquote>
<a name="launch"><h5 style="border-bottom:0">Launchers</h5></a>
  <p>The launchers load
    the JVM, build the IDE's classpath, pass it along with some default parameters
    to the JVM, and prompt the JVM to launch the Java application. They also
  	restart the IDE after accessing the Update Center. The IDE's provided
      launchers are located in the <code>bin</code> subdirectory
      of the installation directory.
  <p>Launchers provided with IDE installation include:
  <blockquote>
    <ul>
    <li>For <b>Microsoft Windows</b>:
     <ul>
	   <li><code>netbeans.exe</code> is
      the executable for running NetBeans IDE as a Windows application without
      a console.
	   <li><code>nb.exe</code> is
      a Microsoft Windows console application. When you run <tt>nb.exe</tt>, a
      console opens on the desktop with <code>stderr</code> and <code>stdout</code> output
      from the NetBeans IDE. <!--You can type <code>Ctrl-Break</code> to get a thread
      dump, or type <code>Ctrl-C</code> to quit the whole program. --></li>
    </ul></li><br>
   <li>For <b>Solaris</b> and other <b>UNIX</b> variants: <code>netbeans</code> Bourne
        shell script is the launcher.<br>
	<li><b>OpenVMS</b>: <code>runideopenvms.com</code> is the launcher.<br>
      <li> <b>Macintosh OS-X</b>: <code>NetBeans</code> is the launcher.
      </ul>
  </blockquote>
  <a name="startup_param"><h5 style="border-bottom:0">Startup Parameters</h5></a>
  <p>Whenever you launch the IDE, it parses the command line
    options it finds in <code>netbeans.conf</code>. You
    can customize the startup parameters passed to the IDE at startup by
    editing the <code><i>${IDE_HOME}</i>/etc/netbeans.conf</code> file.    </p>
  <p>Command-line switches can be entered using GNU style, meaning they are preceded
    with two hyphens rather than one (e.g.: <tt>--help</tt>) or single-letter
    switches (e.g.: <tt>-h</tt>).  JVM flags are entered using only one hyphen
    as in <code>-J<i>jvm_flag</i></code>, for example.</p>
  <p>You can use the following command-line switches: </p>
  <dl>
    <dt><code>-h</code><br>
      <code>--help</code> </dt>
    <dd>print descriptions of common startup parameters.
      <p></p>
    </dd>
    <dt><code>--jdkhome <i>jdk_home_dir</i></code></dt>
    <dd>use the specified version of the Java 2 SDK instead of the default SDK.
      By default on Windows systems, the loader looks into the Windows registry
      and uses the latest SDK available.
      <p></p>
    </dd>
    <dt><code>--cp:p <i>additional_classpath</i></code> </dt>
    <dd> prepend the specified classpath to the IDE's classpath. This option
      is generally not recommended for any purpose.
      <p></p>
    </dd>
    <dt><code>--cp:a <i>additional_classpath</i></code></dt>
    <dd> append the specified classpath to the IDE's classpath.
      <p></p>
    </dd>
    <dt><code>-J<i>jvm_flag</i></code> </dt>
    <dd> pass the specified flag directly to the JVM.
      <p></p>
    </dd>
    <dt><code>--laf <i>UI_class_name</i></code> </dt>
    <dd>use a given class as the IDE's look and feel.
      <p></p>
    </dd>
    <dt><code>--fontsize <i>size</i></code> </dt>
    <dd>use a given size in points as the basic font size for the IDE user interface.
      <p></p>
    </dd>
    <dt><code>--locale <i>language[:country[:variant]]</i></code> </dt>
    <dd>use the specified locale.
      <p></p>
    </dd>
    <dt><code>--userdir <i>userdir</i></code> </dt>
    <dd>explicitly specify the userdir, which is the location in which user settings
      are stored. If this option is not used on a UNIX system, the location is <code><i>${HOME}</i>/.netbeans/4.0</code>.
      On Microsoft Windows systems, the default is <code>.netbeans\4.0</code> beneath
      your default Windows profile area (e.g. <code>c:\Documents&nbsp;and&nbsp;Settings\<i>yourlogin</i></code>).
      <p></p>
    </dd>
    <dt><code>--open <i>file</i></code><br>
      <code>--open <i>file:line number</i></code></dt>
    <dd>Opens the file in the IDE's Source Editor at the specified line.

    </dd>
  </dl>
</blockquote>
<p><b>Note:</b> When launching the IDE for the first time, the IDE needs to scan
	your system classpath after creating the
	initial new project. During this period you may experience
	a brief delay, depending on the complexity  of the project and your system
	configuration. While the IDE occasionally scans the classpath (when creating
	additional projects or after restarting the IDE, for example), the more thorough
	and time-consuming procedure  only needs to be carried out once.</p>
<a name="Compatibility"><h2>Upgrading from Version 3.6</h2>
</a>
<blockquote> When you first run the IDE, you can import a subset of the settings
  you used in NetBeans IDE 3.6. If you choose not to import settings from a previous
  release, the IDE opens using the default settings. Project-specific settings
  are not importable from version 3.6.
  <blockquote><b>Note:</b><i> The IDE only recognizes previous installations
      where the user directory resides in the default location. It does not recognize
      installations for which you have specified a user directory using the <code>--userdir</code> switch.
      </i> </blockquote>
  <p> Though it is possible to import settings from a previous IDE installation
    into NetBeans IDE 4.0, it is not possible to import settings from NetBeans
    IDE 4.0 into an earlier IDE release. </p>
</blockquote>

<a name="KnownProblems">
<h2>Known Issues </h2>
</a>
 <p>The major unresolved issues for this release are as follows:
 <blockquote>
 <ul>
  <li><h3>General Issues</h3>
	<blockquote>
	<p><b>Description:</b></p>
	<p>When working with large projects in the IDE, i.e. those having large numbers of classes, libraries,
	or required projects, you may experience slowed UI responsiveness or even <tt>Out of Memory</tt> errors.
	<p><b>Workaround:</b></p>
	<p>If this occurs, you should increase the IDE's maximum heap size. Navigate
	  to the <tt>/etc</tt> directory within the IDE's installation directory
	    and open the <tt>netbeans.conf</tt> file in a text editor. Change -J-Xmx128m
	    to -J-Xmx160m, or even to -J-Xmx256m for very large projects. For smooth
	    and responsive work with the IDE, it is recommended that your physical
	    RAM size be at least 200MB larger than the Xmx setting. Therefore, you should
	    not set -J-Xmx256m if your system has less than 512MB RAM installed.
	</blockquote></li>

  <li>
    <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=45963&x=17&y=7">Issue # 45963</a>
	<blockquote>
	<p><b>Description:</b></p>
	<p>When working with projects with resources (JDK, libraries,
sources, etc.) located on remote disks within a LAN  or accessed from a <tt>/net</tt> folder,
you may experience slowed IDE performance.

	<p><b>Workaround:</b></p>
	<p>As responsiveness depends on many factors (LAN throughput, project
	  configuration, user's workflow, etc.), there is  no  easy
	  workaround for this problem. If the IDE's performance seems  insufficient,
	  it is recommended that you  place all necessary resources on the local
	  system.
	</blockquote></li>

  <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=47645&x=17&y=7">Issue # 47645</a>
	<blockquote>
	<p><b>Description:</b></p>
	<p>Cannot
run a target with <java> a task that has <tt>failonerror=true</tt> from within
the IDE even though the same script runs  outside of the IDE without problems.
	<p><b>Workaround:</b></p>
	<p>If this occurs, it is recommended that you
      run the script from the command line. Alternately, you may rewrite the
	  script.<!--TODO(tm) : add phrase clarifying what user would change when rewriting script-->
	</blockquote></li>

  <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=49039&x=17&y=7">Issue
  		# 49039</a>
	<blockquote>
	<p><b>Description:</b></p>
	<p>When  switching projects on the  Choose File Type page of
	  the IDE's New File  wizard (New &gt; File), the newly
	  designated project doesn't propogate to the subsequent page
	  of the wizard. Note that this  problem occurs for generic file templates
	  in the wizard's Other node (i.e. Properties, Folder, Html, etc.) and does
	  not affect Java, Form, Web, JavaBeans, or JUnit templates.

	<p><b>Workaround:</b></p>
	<p>If you experience this problem, invoke the New
	  File wizard by right-clicking the project you wish to add the new file
	  to and choosing New from the contextual menu that appears.
	</blockquote></li>

  <li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=47708&x=17&y=7">Issue
  			# 47708</a>
	<blockquote>
	<p><b>Description:</b></p>
	<p>Cannot send text input to Ant
			tasks via the console or the IDE's Output window.
	<p><b>Workaround:</b></p>
	<p>Run the Java app in unforked
mode by opening build-impl.xml, copying &lt;target<br>
name=&quot;-init-macrodef-java&quot;&gt;, and pasting it into build.xml. Next,
      edit fork="true" to fork="false". Note that you should ensure that all
      your files have been saved because even though normal exceptions should
      only cause the build to fail cleanly, some critical bugs (e.g.
   	AWT-related deadlocks) in your app could cause the IDE to  hang or
   	crash.
      <!--<p>In unforked mode there can also be some
  		subtle problems if your app's classpath includes packages that
  		overlap packages in NB's startup classpath. Similarly, your app will
   	not be able to set a new SecurityManager or do a few other special operations
   	that affect the entire VM.-->
	</blockquote></li>
 </ul>
</blockquote>
<blockquote>
  <!--<p><b>Note:</b> As this is a beta, there is a large number of outstanding bugs
    which you can monitor by visiting the <a href="https://netbeans.org/community/issues.html">NetBeans
    Issue Tracking page</a>.</p>-->
  <ul>
  	<li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=51545&x=17&y=7">Issue
  			# 51545 </a>
   		<blockquote>
   			<p><b>Description:</b></p>
   			<p>When working on multiple  projects using different JDKs,
   			JDK sources hyperlinked from the stacktrace of an exected project
   				point to the wrong JDK.
Note that stepping through JDK sources in the debugger is not affected by this
   				issue.
   			<p><b>Workaround:</b></p>
				<p>If you experience this problem, limit work on projects to those using
					the same JDK at a given time. If you want to work on projects
					using a different platform, it is recommended that you restart
					the IDE.
   		</blockquote>
  		</li>
  	<li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=51819&x=17&y=7">Issue
  			# 51819</a>
   		<blockquote>
   			<p><b>Description:</b></p>
   			<p>When attempting to rename a class by choosing Refactor &gt; Rename, the
   				file is renamed, but not the class or its constructors. Note that
   				this issue only occurs when invoking the command from
   				javadocs or comments and can lead to uncompilable source
   				code.
   			<p><b>Workaround:</b></p>
				<p>If you experience this problem,   rename the class by invoking the Rename
					command directly from class
					definition or variable declaration for the class you wish to rename.
   		</blockquote>
  		</li>
  	<li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=52026&x=17&y=7">Issue
  			# 52026 </a>
   		<blockquote>
   			<p><b>Description:</b></p>
   			<p>When attempting to   import  or edit already-imported VCS
   				profiles from earlier 4.0 versions, various profile settings are
   				 missing or incorrect.
   			<p><b>Workaround:</b></p>
				<p>If you experience this problem,    remove your existing
				versioned working directories from the Version Manager and add
					them again.
   		</blockquote>
  		</li>
  	<li><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=51955&x=17&y=7">Issue
  			# 51955 </a>
   		<blockquote>
   			<p><b>Description:</b></p>
   			<p>When selecting  folders or files that are included in a project in the
   				Versioning window, the project's file-based actions are
  				deactivated.
   			<p><b>Workaround:</b></p>
				<p>If you experience this problem,    restart NetBeans and avoid using the
					Versioning tab or &quot;Show
				Versions&quot; contextual action to compile, run, or debug  files.
   		</blockquote>
  		</li>


  	</ul>
  <p>To search for other known issues with NetBeans IDE 4.0, you can use this <a href="https://netbeans.org/bugzilla/buglist.cgi?issue_type=DEFECT&issue_status=NEW&issue_status=STARTED&issue_status=REOPENED&priority=P1&priority=P2&version=3.6&version=4.0&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&issueidtype=include&issue_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&issue_file_loc=&issue_file_loc_type=substring&status_whiteboard=&status_whiteboard_type=substring&keywords=&keywords_type=exactlyanywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&order=Reuse+same+sort+as+last+time">query</a>. </p>
</blockquote>

<a name="Documentation"><h2>Documentation</h2></a>
<blockquote>
  <!--Documentation is provided for NetBeans IDE in the form of web-based
  guides and the IDE's built-in help system. The documentation is not complete
  for this beta and some of the help files are out of date, however
  the following documents should help you in getting started:-->

  Documentation is provided for NetBeans IDE in the form of web-based
  guides and the IDE's built-in help system. In addition, you can refer to
  the following documents to help you  get started:
  <ul>
    <li><a href="https://netbeans.org/kb/archive/index.html"> NetBeans
        IDE Quick Start Guide</a>.</li>
  </ul>
  <p>For the complete NetBeans IDE documentation list, visit <a href="https://netbeans.org/kb/archive/index.html">https://netbeans.org/kb/archive/index.html</a>. </p>
</blockquote>
<a name="MoreInfo"><h2>More Information</h2></a>
<blockquote>
  <p>You can find news, articles, additional modules, and other useful
    information on the NetBeans project web site.
    Since NetBeans is an open-source project, the web site also provides access
    to source code, a bug database, information on creating your own NetBeans
    modules, and much more.
  </p>
  <p>For more information, visit <a href="https://netbeans.org/">https://netbeans.org/</a>. </p>
  <p>You
  can keep up to date on NetBeans IDE and interact with the NetBeans community
    by signing up for NetBeans project mailing lists  at <a href="https://netbeans.org/community/lists/">https://netbeans.org/community/lists/</a>.
</blockquote>
</body>
</html>
