<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <title>NetBeans IDE - README</title>
   <link rel="stylesheet" type="text/css" href="/netbeans.css">
</head>
<body>
<h1>README</h1>
<h2>NetBeans IDE 3.3</h2>
<p><b><font color="#CC3333">Contents</font></b>

<dl>
        <dd><a href="#Introduction">1. Introduction</a></dd>
        <dd><a href="#WhatsNew">2. What's New In This Release</a></dd>
        <dd><a href="#SystemRequirements">3. System Requirements</a></dd>
        <blockquote>
        <dl>
                <dd><a href="#req_hw">3.1 Hardware</a></dd>
                <dd><a href="#req_os">3.2 Operating System</a></dd>
                <dd><a href="#req_sw">3.3 Software</a></dd>
        </dl>
        </blockquote>
        <dd><a href="#Installation">4. Installation</a></dd>
        <dd><a href="#Startup">5. The Launcher and Startup Parameters</a></dd>
        <dd><a href="#Compatibility">6. Compatibility/Upgrading</a></dd>
        <dd><a href="#KnownProblems">7. Known Problems</a></dd>
        <dd><a href="#Documentation">8. Documentation</a></dd>
        <dd><a href="#MoreInfo">9. More Information</a></dd>
</dl>

<hr>
<p>
<h2><a name="Introduction">1. Introduction</a></h2><p>
<blockquote>
        <p>
        Welcome to NetBeans IDE version 3.3, a modular, standards-based integrated development environment (IDE),
        written in Java.
        NetBeans is not just an IDE. NetBeans is :
        <ul>
        <li>An <a HREF="https://netbeans.org/features/ide/index.html">open source IDE</a> written in
        the Java<sup CLASS="tmtext">TM</sup> programming language.</li>

        <li>A <a HREF="https://netbeans.org/features/platform/index.html">tools platform</a> into which other
        tools and functionality can be seamlessly integrated by writing and
        incorporating modules.</li>

        <li>An <a HREF="https://netbeans.org/features/index.html">application core</a> which can be
        used as a generic framework to build any kind of application.</li>
        </ul>
        <p><a HREF="https://netbeans.org/features/index.html">Read more about NetBeans ...</a>
        <p>
</blockquote>

<p><h2><a name="WhatsNew">2. What's New In This Release</a></h2><p>
<blockquote>
        NetBeans IDE 3.3 release contains a lot of new features. The
        The complete list of new features implemented in this release is available in the IDE's installation folder
        in the <a href="CHANGES.html">CHANGES.html</a> file.
</blockquote>

<p><h2><a name="SystemRequirements">3. System Requirements</a></h2><p>
<blockquote>
        Since NetBeans is written in pure Java, it should run on any working implementation
        of Java(TM) 2 SDK, Standard Edition.
        <p><h3><a name="req_hw">3.1 Hardware</a></h3><p>
        <blockquote>
                The hardware requirements are similar for all platforms, but it may differ slightly for some cases.
                The recommended configuration for running NetBeans IDE is:
                <ul>
                        <li><b>Disk space</b>: 40 Mbytes</li>
                        <li><b>Memory</b>: 128 (Windows platforms) - 256 Mbytes (most other operating systems)</li>
                        <li><b>Processor</b>: PII/300, UltraSPARC II/450 (Solaris), 500MHz Alpha (Open VMS) or equivalent</li>
                </ul>
                <b>Note:</b> If your system's memory is lower than the above recommendation, you should set
                a lower maximum heap size in the <code>bin/ide.cfg</code> file. For example, if your system has 64 Mbytes of memory,
                you can change the <code>-J-Xmx96m</code> parameter to <code>-Xmx48m</code>.
        </blockquote>
        <p><h3><a name="req_os">3.2 Operating System</a></h3><p>
        <blockquote>
                Any operating system supporting Java(TM) 2 SDK, Standard Edition.
                Below is a list of platforms that the NetBeans IDE can run on.
                If you know about any other platform, please let us know.
                <ul>
                        <li>Windows 95, 98, NT 4.0, 2000, XP, ME</li>
                        <li>Solaris 8</li>
                        <li>Linux - any distribution</li>
                        <li>OS/2</li>
                        <li>Open VMS 7.2-1 or later</li>
                        <li>Mac OS X 10.1.1</li>
                        <li>HP-UX</li>
                </ul>
        </blockquote>
        <p><h3><a name="req_sw">3.3 Software</a></h3><p>
        <blockquote>
                NetBeans requires a Java 2-compatible JVM. Download the latest version of the appropriate JDK (1.3.x) from the following sites:
                <ul>
                        <li><b>Windows</b>: <a HREF="http://java.sun.com/j2se/1.3/download-windows.html">http://java.sun.com/j2se/1.3/download-windows.html</a></li>
                        <li><b>Solaris</b>: <a HREF="http://java.sun.com/javase/index.jsp">http://java.sun.com/javase/index.jsp</a></li>
                        <li><b>Linux</b>: <a HREF="http://java.sun.com/j2se/1.3/download-linux.html">http://java.sun.com/j2se/1.3/download-linux.html</a></li>
                        <li><b>OS/2</b>: <a href="http://service.boulder.ibm.com/asd-bin/doc/en_us/catalog.htm">http://service.boulder.ibm.com/asd-bin/doc/en_us/catalog.htm</a></li>
                        <li><b>Open VMS</b>: <a href="http://www.compaq.com/java/alpha/index.html">http://www.compaq.com/java/alpha/index.html</a></li>
                        <li><b>Mac OS X</b>: Mac OS X 10.1.1. The upgrade from Mac OS X 10.1 to 10.1.1 is available via the Apple's Software Update mechanism.
                        See also the <a href="#Installation">installation</a> section in this document. More inforamtion  about using
                        NetBeans 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>
                NetBeans IDE also runs on JavaTM 2 SDK, Standard Edition, v. 1.4.0 (currently Beta 3).
                Download this version of the J2SE SDK from <a href="http://java.sun.com/j2se/1.4/">http://java.sun.com/j2se/1.4/</a>.
                <p>If you are running on
                a Microsoft Windows system, please note that the <code>runide.exe</code> installer does not detect
                beta versions of the JDK. You can set the <CODE>-jdkhome <I>jdk_home_dir</I></CODE> parameter
                in the <code>ide.cfg</code> file if you want to use a different JDK than the one detected by the
                installer. See
                <a href="#Startup">The Launcher and Startup Parameters</a> for more information.</p>
        </blockquote>
</blockquote>

<p><h2><a name="Installation">4. Installation</a></h2><p>
<blockquote>
        For <b>all platforms</b> you can download the <code>.zip</code> or the <code>.tar.gz</code>
        archive file and
        unpack it on the hard disk using your favorite tool.  Then you must customize
        the startup parameters to tell the IDE where to find the SDK.  Please read the
        <a href="#Startup">The Launcher and Startup Parameters</a> section for details.
        <p>
        On <b>Microsoft Windows</b> platforms you can download and run an <code>.exe</code> point-and-click
        installer that guides you through the required steps.
        <p>
        On <b>OpenVMS</b> <ul>
                <li>Download the OpenVMS NetBeans self-extracting archive to
                your OpenVMS system. You may want to put this file into
                its own empty subdirectory since documentation and the
                actual installable kit will be created there.</li>
                <li>Assure your default directory is set to the directory
                where the NetBeans archive was downloaded.</li>
                <li>Execute the command: <code>$ RUN kit_name</code><br>
                Replace <code>kit_name</code> with the full name of the
                self-extracting
                archive which you just downloaded. The contents of the
                archive will now be extracted to your directory.</li>
                <li>View the installation documentation which was created in
                the extraction process and follow the steps contained in
                the guide to complete the installation.</li>
        </ul>
        <p>

        On <b>Mac OS X</b>
        <ul>
               <LI>Untar, unzip to extract NetBeans.  Note: unzip is
               part of developers tools, so it is not available in normal installation,
               don't forget to use gnutar instead of tar. Using StuffitExpander to extract NetBeans can cause
               problems with truncated filenames for NetBeans 3.3. For more info see
               <A HREF="https://netbeans.org/bugzilla/show_bug.cgi?id=16987">
               Bad expansion of .tar.gz on Mac OS X</A></LI>
              <LI>To launch NetBeans open Terminal application and go to the <CODE>netbeans/bin</CODE> directory.
              </LI>
              <LI>Start NetBeans in the standard look and feel using following command<BR>
              <CODE>&nbsp;&nbsp;./runide.sh -jdkhome /Library/Java/Home</CODE><BR>
              The -jdkhome switch can be omitted if you set the environment variable JAVA_PATH or
              JDK_HOME to /Library/Java/Home
              </LI>
              <LI>NetBeans can be started in Aqua look and feel using<BR>
              <CODE>&nbsp;&nbsp;./runide.sh -jdkhome /Library/Java/Home -ui com.apple.mrj.swing.MacLookAndFeel -fontsize 10</CODE><BR>
              <BR>
                Note that settings are incompatible between Aqua and normal look and feel,
                therefore it is a good idea to have two different user directories if you want
                to test both normal and Aqua look and feel. Use the <code>-userdir</code> switch to set different user directories.<br>
        </ul>
        <p>
</blockquote>

<p><h2><a name="Startup">5. The Launcher and Startup Parameters</a></h2><p>
<blockquote>
The IDE is run by a launcher. Launchers for several platforms are located in the
<CODE>bin</CODE> subdirectory of the installation directory.
<P>
For <B>UNIX</B>, the Bourne shell script <CODE>runide.sh</CODE> is the launcher.<BR>
For <B>Microsoft Windows</B>, use the <CODE>runide.exe</CODE> or the <CODE>runidew.exe</CODE>
executable. <CODE>runide.exe</CODE> is a Microsoft Windows console application. When you run runide.exe, 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 the thread dump, or type <CODE>Ctrl-C</CODE> to quit the whole program. <CODE>runidew.exe</CODE> is the executable for running the NetBeans IDE as a window application without a console. <BR>
For <B>OS/2</B> <CODE>runideos2.cmd</CODE> is the launcher.<BR>
For <B>OpenVMS</B> <CODE>runideopenvms.com</CODE> is the launcher.<BR>

<P>
The launcher loads the JVM, builds the IDE's classpath,
passes it along with some default parameters to the JVM, and lets the
JVM launch the Java application. It also restarts the IDE after you have
used the Update Center.

<P>You can pass startup parameters to the launcher using the
<code>${IDE_HOME>/bin/ide.cfg</code> file. The launcher tries to read this file before it
starts parsing the command line options. You can break the
options into multiple lines.

<p>The following options are available:

<DL>
  <DT><CODE>-h</CODE><BR>
      <CODE>-help</CODE>
  <DD>print descriptions of common startup parameters
    <P>
  </DD>

  <DT><CODE>-jdkhome <I>jdk_home_dir</I></CODE></DT>
  <DD>use the specified version of the Java(TM) 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>
  </DD>

  <DT><CODE>-classic</CODE><BR>

  </DT>
  <DD>use the classic JVM, instead of the default Java HotSpot Client VM.
      <P>
  </DD>

  <DT><CODE>-cp:p <I>additional_classpath</I></CODE>
  </DT>
  <DD>
      prepends the specified classpath to the IDE's classpath.
      <P>
  </DD>

  <DT><CODE>-cp:a <I>additional_classpath</I></CODE><BR>
      <CODE>-cp <I>additional_classpath</I></CODE>
  </DT>
  <DD>
      appends the specified classpath to the IDE's classpath.
      <P>
  </DD>

  <DT><CODE>-J<I>jvm_flags</I></CODE>
  <DD>
      passes specified flags directly to the JVM.
      <P>
  </DD>

  <DT><CODE>-ui <I>UI_class_name</I></CODE>
  <DD>use a given class as the IDE's LookAndFeel
    <P>
  </DD>

  <DT><CODE>-fontsize <I>size</I></CODE>
  <DD>use a given size in points as the font size for the IDE user interface.
    <P>
  </DD>

  <DT><CODE>-locale <I>language[:country[:variant]]</I></CODE>
  <DD>use the specified locale.
    <P>
  </DD>

  <DT><CODE>-userdir <I>userdir</I></CODE>
  <DD>explicitly specifies the userdir which is the location
      where user settings are stored.  If this option is not used on UNIX the
      location is ${HOME}/nbuser33. On Microsoft Windows systems, the launcher asks the user
      to specify the userdir and stores the value in the registry for later use.
  </DD>

</DL>

</blockquote>
<p><h2><a name="Compatibility">6. Compatibility/Upgrading</a></h2><p>
<blockquote>

When you first run NetBeans IDE 3.3, you can import the settings that you used
in a previous installation of the IDE. These settings include project-specific settings
and global options. If you choose not to import settings from a previous release, the
IDE begins with a set of default settings. The Import Wizard guides you through the choices.
<p>
You can import settings from NetBeans IDE v. 3.0, 3.1, and 3.2. You can also import
settings for Forte for Java v. 2.0 and 3.0.
<p>
In NetBeans IDE 3.2 and Forte for Java 3.0, you can find the user
directory when running the software. Choose Help | About, and click the Detail tab.
<p>
Though it is possible to import settings from a previous IDE installation into
NetBeans IDE 3.3, it is not possible to import settings from NetBeans
IDE 3.3 into earlier IDE releases.

</blockquote>
<p><h2><a name="KnownProblems">7. Known Problems</a></h2><p>
<blockquote>
The following list includes the known high priority issues in NetBeans 3.3.
<p>
<table BORDER="1" CELLSPACING="2" CELLPADDING="2">
        <tr><td><b>Id</b></td><td><b>Priority</b></td><td><b>Component</b></td><td><b>Description</b></td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=14130">14130</a></td><td>P2</td><td>openide</td><td>Unable to add files to the already created jar(-Content)</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=18110">18110</a></td><td>P2</td><td>openide</td><td>DataObject synchronize on this.</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=11149">11149</a></td><td>P3</td><td>openide</td><td>[MDI] Click on property sheet and Explorer gets focus</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=18178">18178</a></td><td>P3</td><td>openide</td><td>Invalid lock when saving settings</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=18081">18081</a></td><td>P2</td><td>core</td><td>The Window System became corrupted after restart</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=17894">17894</a></td><td>P2</td><td>core</td><td>Editor got lost after switching projects, exception thrown</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=17212">17212</a></td><td>P2</td><td>core</td><td>IDE Won't Work After Creating Project That Uses JDK 1.4 Beta 2</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=5697">5697</a></td><td>P3</td><td>core</td><td>Sometimes an unselected editor window is receiving key strokes instead of the selected one</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=16034">16034</a></td><td>P3</td><td>core</td><td>Order of editor tabs not remembered under some circumstances</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=16587">16587</a></td><td>P2</td><td>debugger</td><td>Problems with adding/removing views dynamically</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=5620">5620</a></td><td>P2</td><td>editor</td><td>[indentation]After Reformat code action all bookmarks and breakpoints are moved to first line of the file.</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=17862">17862</a></td><td>P2</td><td>editor</td><td>Garbled output in editor when using server hotspot</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=18346">18346</a></td><td>P3</td><td>editor</td><td>NullPointerException after double-click on the error line in Output window.</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=10335">10335</a></td><td>P3</td><td>form</td><td>Not generating code from bean Customizer</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=16724">16724</a></td><td>P3</td><td>form</td><td>PropertySheet: NPE after set NullLyout for Form</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=18077">18077</a></td><td>P3</td><td>form</td><td>Unable to use Form module with WindowsLookAndFeel</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=17984">17478</a></td><td>P3</td><td>javadoc</td><td>Javadoc mounted as http filesystem cannot be refreshed</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=17984">17984</a></td><td>P2</td><td>javacvs</td><td>Deadlock in FSs</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=12557">12557</a></td><td>P2</td><td>openide</td><td>Deadlock while modifying just loading source.</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=17976">17976</a></td><td>P2</td><td>projects</td><td>FSException during open Default Project after disabling/enabling Project module</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=18216">18216</a></td><td>P1</td><td>vcscore</td><td>Deadlock when switching projects in VCS group code</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=18374">18374</a></td><td>P2</td><td>vcsgeneric</td><td>VSS: Refreshing on folder declares all files as [Missing].</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=18371">18371</a></td><td>P3</td><td>vcsgeneric</td><td>VSS: Two "Refresh" commands on files.</td></tr>
        <tr><td><a href="https://netbeans.org/bugzilla/show_bug.cgi?id=18175">18175</a></td><td>P2</td><td>web</td><td>Servlet debugger fails to start in some case</td></tr>
</table>
<FONT CLASS="default">

<p>
Please refer to <a href="https://netbeans.org/community/issues.html">IssueZilla</a> to check the current bug status.

</blockquote>

<FONT CLASS="default">
<p><h2><a name="Documentation">8. Documentation</a></h2><p>
<blockquote>
Documentation is provided for the NetBeans IDE in the form of online help.
To access all of the available online help, choose Help | Contents.
<p>
The online help is not complete for the NetBeans IDE 3.3. Updates to
the online help may be provided periodically in the Update Center or as part
of any update releases.

</blockquote>
<p><h2><a name="MoreInfo">9. More Information</a></h2><p>
<blockquote>
There is extensive information on the NetBeans project website, <a href="https://netbeans.org/">https://netbeans.org/</a>.
Included on the website are a FAQ and instructions on how to subscribe to mailing lists where you can post questions, comments, or help others.
<p>
As NetBeans is an OpenSource project you can get access to the source code, bug tracking system etc. on <a href="https://netbeans.org/">https://netbeans.org/</a>.
</blockquote>
</body>
</html>
