# README

## NetBeansTM IDE 3.5.1

### Contents

  Introduction
  What Has Changed

  Changes Since the 3.5 Release
  Changes Between the 3.4.1 and 3.5 Releases
  Changes Between the 3.4 and 3.4.1 Releases
  Changes Between the 3.3.2 and 3.4 Releases
  API Changes

  System Requirements

  Hardware
  Operating System
  Software

  Installation
  The Launcher and Startup Parameters
  Compatibility/Upgrading
  Known Problems
  Documentation
  More Information

## Introduction

> Welcome to NetBeansTM IDE 3.5.1, a modular, standards-based integrated development environment (IDE), written in the JavaTM programming language. The NetBeans project consists of:

> - An open source IDE written in the Java programming language.
> - An application platform, which can be used as a generic framework to build any kind of application.

> Read more about the NetBeans project...

> You can find the latest version of this document at http://www.netbeans.org/community/planning/35/1/README.html.

## What Has Changed

> ### Changes Since the 3.5 Release

> The 3.5.1 release contains bug fixes that improve the IDE's handling of text when the IDE's default font size is increased. This fixes were necessary to create a Chinese localization, since the Chinese characters require a larger font size to be readable.

> ### Changes Between the 3.4.1 and 3.5 Releases

> Work on Release 3.5 of the NetBeans IDE was focused almost entirely on IDE performance. Both startup time and general UI responsiveness have improved significantly.In addition, there are these changes:
> - Several modules, previously available on the Update Center, have been added to the standard distribution. These modules provide many features, including support for:
>   - debugging servlets and applications written with JavaServer PagesTM technology.
>   - creating and editing tag libraries.
>   - monitoring HTTP requests.
>   - WAR file packaging.
>   - connecting to and browsing databases.
> - Some features that existed in previous IDE releases have been removed from the standard distribution:
>   - RMI support.
>   - JNDI support.
>   - XML Tree Editor (because of persistent performance problems - see issue 31656) You can download this module from the Update Center.
>   - Scripting support.
>   - New Module Wizard.

> ### Changes Between the 3.4 and 3.4.1 Releases

> Release 3.4.1 was primarily a bug fix release, but it also had the following changes:

> - The Documentation Indices command was added to the View menu to enable viewing of mounted Javadoc documentation in a web browser.
> - The supported version of Ant changed to version 1.5.1.
> .

> A more complete list of changes that occurred between versions 3.4 and 3.4.1 can be found here.

> ### Changes Between the 3.3.2 and 3.4 Releases

> The following are some of the changes that first appeared in NetBeans IDE 3.4:

> - The Ant Manual and the Javadoc for Ant were removed from the distribution. You can add them to the IDE by downloading the Ant Documentation module from the NetBeans Update Center.
> - The Javadoc tab was removed from the Explorer.
> - The Javadoc Manager was added to the Tools menu to enable mounting of filesystems of documentation generated with the Javadoc tool.
> - Support for the JDK version 1.1 Tools debugger, which is not supported in JDK version 1.4, was removed from the distribution. Support for the JPDA debugger remains. If you need to use the JDK version 1.1 debugger, you can download it from the Update Center.
> - Drag and drop enabled for Explorer nodes.
> - Running workspace eliminated.
> - Close button added to tabs.
> - Import Management Tool added to simplify handling of imports in Java classes.
> - Undo/redo capability added to the Form Editor.
> - Parser errors now highlighted by glyphs in the gutter of the Source Editor window.
> - Improved design of the Debugger window.
> - Addition of Fix and Continue (HotSwap) support.
> - Addition of XML schema and XSL transformation support.
> - Addition of a toolbar in the Source Editor window.
> - Addition of a customizer for maintaining code completion databases.
> - Improved support for integration of PVCS and VSS in the IDE.
> - Addition of support for JDK version 1.4 features, such as assertions.

> A more complete list of changes that occurred between versions 3.3.2 and 3.4 can be found here.

> ### API Changes

> If you develop modules for the NetBeans project, check the NetBeans Upgrade Guide for information on API changes.

## System Requirements

> Since NetBeans IDE is written in pure Java, it should run on any working implementation of Java 2 SDK, Standard Edition.

> ### Hardware

> #### Minimum Configuration

> To run NetBeans IDE, you should have at least the following:

> - Disk space: 125 Mbytes
> - Memory: 256 Mbytes
> - Processor: PIII/500 processor (Microsoft Windows and Linux operating systems), Ultra 10 450 MHz workstation (SolarisTM operating system), 500MHz Alpha (Open VMS operating system) or equivalent
> Note: If your system's memory is lower than the above recommendation, you should set a lower maximum heap size in the `bin/ide.cfg` file. For example, if your system has 128 Mbytes of memory, you can change the `-J-Xmx96m` parameter to `-J-Xmx48m`.

> #### Recommended Configuration

> The IDE's performance was tested on machines with the following configurations:

> - Solaris operating system: UltraTM 60 workstation with 512 Mbytes of memory and 125 Mbytes of free disk space for installation
> - Microsoft Windows operating systems: Intel Pentium III workstation with a 700 MHz processor, 384 Mbytes of memory, and 125 Mbytes of free disk space.
> - Linux operating system: Intel Pentium III workstation with a 700 MHz processor, 512 Mbytes of memory, and 125 Mbytes of free disk space.

> ### Operating System

> NetBeans IDE runs on operating systems that support JavaTM 2 SDK, Standard Edition. Below is a list of platforms that NetBeans IDE has been tested on.
> - Microsoft Windows NT 4.0, 2000, and XP operating systems
> - Solaris operating system (SPARC® Platform Edition), versions 7, 8 and 9
> - Linux Red Hat versions 7.2 and 8.0

> NetBeans IDE is also known to run on the following platforms:

> - Solaris operating system (X86 Platform Edition), version 9
> - Microsoft Windows 95, 98, and ME operating systems
> - other Linux distributions
> - OS/2
> - Open VMS 7.2-1 or later
> - Mac OS X 10.1.1 or later
> - other UNIX® platforms, such as HP-UX
> If you know about any other platform that NetBeans IDE runs on, please let us know.

> ### Software

> NetBeans IDE requires a Java 2-compatible JVM. Download the latest version of the appropriate JDK version (v. 1.3.x or 1.4.x) from the following sites:
> - Windows, Solaris, Linux: http://java.sun.com/j2se/1.4/download.html
> - OS/2: http://service.boulder.ibm.com/asd-bin/doc/en_us/catalog.htm
> - Open VMS: http://h18012.www1.hp.com/java/download/index.html
> - Mac OS X: Mac OS X 10.1.1 or later. Mac OS upgrades are available via Apple's Software Update mechanism. See also the installation section in this document. More information about using NetBeans IDE on Mac OS X is available at http://www.netbeans.org/kb/articles/mac.html

> If you are running on a Microsoft Windows system, please note that the `runide.exe` installer does not detect JDK beta versions. You can set the `-jdkhome jdk_home_dir` parameter in the `ide.cfg` file if you want to use a different JDK version than the one detected by the installer. See The Launcher and Startup Parameters for more information.

## Installation

> For all platforms you can download the `.zip` or the `.tar.gz` or the `.tar.bz2` 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 Launcher and Startup Parameters section for details.

> On Microsoft Windows platforms, you can download and run an `.exe` point-and-click installer that guides you through the required steps.

> Several ".bin" executable Installshield installers are available for various UNIX platforms. You may need to make these executable before running:

> > `$ chmod +x NetBeans.bin
> > $ ./NetBeans.bin`

> While the installer will search for any installed JDK versions, and prompt you for which JDK version you should use, you can speed the install up by specifying a JDK version on the command line:

> > `$ ./NetBeans.bin -is:javahome <path_to_your_jdk>`

> On Mac OS X

> - Untar or unzip to extract NetBeans. Note: unzip is part of the developer tools, so it is not available in a normal installation. To untar, use gnutar instead of tar.
> - To launch NetBeans IDE open the Terminal application and go to the `netbeans/bin` directory.
> - Start NetBeans IDE in the standard look and feel using the following command:
>   `./runide.sh -jdkhome /Library/Java/Home`
>   The -jdkhome switch can be omitted if you set the environment variable JAVA_PATH or JDK_HOME to /Library/Java/Home
> - NetBeans IDE can be started in the Aqua look and feel using:
>   `./runide.sh -jdkhome /Library/Java/Home -ui com.apple.mrj.swing.MacLookAndFeel -fontsize 10`
>   Note that settings are incompatible between the Aqua and normal look and feels, so it is a good idea to have two different user directories if you want to test both normal and Aqua look and feels. Use the `-userdir` switch to select different user directories.

## The Launcher and Startup Parameters

> The IDE is run by a launcher. Launchers for several platforms are located in the `bin` subdirectory of the installation directory.

> For UNIX systems, the Bourne shell script `runide.sh` is the launcher.
> For Microsoft Windows, use the `runide.exe` or the `runidew.exe` executable. `runide.exe` is a Microsoft Windows console application. When you run runide.exe, a console opens on the desktop with `stderr` and `stdout` output from the NetBeans IDE. You can type `Ctrl-Break` to get a thread dump, or type `Ctrl-C` to quit the whole program. `runidew.exe` is the executable for running NetBeans IDE as a Windows application without a console.
> For OS/2 `runideos2.cmd` is the launcher.
> For OpenVMS `runideopenvms.com` is the launcher.

> 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.

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

> The following options are available:

> `-h`
> `-help`
>   print descriptions of common startup parameters.

> `-jdkhome jdk_home_dir`
>   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.

> `-classic`
>   use the classic JVM, instead of the default Java HotSpot Client VM.

> `-cp:p additional_classpath`
>   prepend the specified classpath to the IDE's classpath. This option is generally not recommended for any purpose.

> `-cp:a additional_classpath`
> `-cp additional_classpath`
>   append the specified classpath to the IDE's classpath. This option is generally recommended only for adding custom look and feel implementation JARs, which you may instead add to the NetBeans IDE `lib/ext/` directory. See the online help for information on mounting user development libraries.

> `-Jjvm_flag`
>   pass the specified flag directly to the JVM.

> `-ui UI_class_name`
>   use a given class as the IDE's look and feel.

> `-fontsize size`
>   use a given size in points as the basic font size for the IDE user interface.

> `-locale language[:country[:variant]]`
>   use the specified locale.

> `-userdir userdir`
>   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 `${HOME}/.netbeans/3.5`. On Microsoft Windows systems, the default is `.netbeans\3.5` beneath your default Windows profile area (e.g. `c:\Documents and Settings\yourlogin`).

> `-J-Dnetbeans.popup.linuxhack=true`
>   under some Linux window managers, this option fixes bug 12496, in which contextual menus appear in the upper left corner of the screen.

> `-J-Dnetbeans.tab.close.button.enabled=false`
>   Remove the close button from tabs in the Source Editor, Explorer, and other windows.

## Compatibility/Upgrading

> When you first run the IDE, 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.

> If you use an installer, the installer guides you through project import choices. If you run the IDE from an unpacked archive, the Settings Import Wizard appears the first time you run the IDE and guides you through the choices.

> > Note: The installer only recognizes previous installations where the user directory resides in the default location. It does not recognize installations where you have specified a user directory using the `-userdir` switch. If you would like to import settings from an IDE that the installer does not recognize, download an archive version of the IDE instead of the installer.

> You can import settings from the NetBeans IDE v. 3.0, 3.1, 3.2, 3.3, and 3.4. You can also import settings from the Community Edition of Sun ONE Studio (formerly ForteTM for Java) software versions 2.0, 3.0, and 4.

> In NetBeans IDE, release 3.2 or above and Sun ONE Studio version 3.0 or above, you can find the user directory when running the software. Choose Help | About, and click the Detail tab.

> Though it is possible to import settings from a previous IDE installation into NetBeans IDE 3.5.1, it is not possible to import all settings from the NetBeans IDE 3.5.1 into an earlier IDE release.

## Known Problems

> The following are the major unresolved issues for this release:
> - Description: Various IDE and system crashes caused by bad interaction between the Java platform and some video drivers on Microsoft Windows systems. In particular, there are problems with JDK version 1.4.1_01 and ATI Radeon graphic cards as outlined in Bug Parade issue 4713003.
>   Workarounds:
>   - Update your video driver.
>   - Update to JDK version 1.4.1_02 or JDK version 1.4.2.
>   - Disable the IDE's use of DirectX. You can turn off DirectX by doing the following:
>     1. Expand the IDE's installation directory and opening the `bin/ide.cfg` file.
>     2. Add the following switch:

>            -J-Dsun.java2d.noddraw=true

>        .
> - 32958 Description: In some cases, when running on Microsoft Windows XP systems and JDK version 1.4.1 is installed, the NetBeans IDE installer fails while looking for a suitable JDK version.
>   Workaround: Reinstall the JDK software. If the problem persists with that JDK version, try a different JDK version.
> - 30767 Description: The installer sometimes hangs when doing a clean install (not upgrading a previous version of the IDE) after selecting the installation directory in the wizard. This bug has been encountered on some Windows and Linux systems but has not been isolated.
>   Possible workarounds:
>   - Try a different JDK version. The bug appears to be most common on JDK version 1.4.0.
>   - Accept the default installation directory.
>   - If you have a previous version of the IDE installed, select the import option when installing.
>   - If you are running on a Linux system, pressing Ctrl-\ sometimes stops the hang and resumes the installation.
>   - If you are running on a Windows XP system, check your permissions. You may need to logon as administrator or set administrator privileges for yourself to get the installer to work correctly.
> - 32637, 32682, 32633 Description: When running on beta versions of JDK version 1.4.2, there are numerous problems with the GTK+ look and feel that make the IDE generally unusable.
> - 21326 Description: A JAR recipe file can be corrupted if you switch projects or move files or filesystems that the JAR recipe file refers to.
> - 32962 Description: The IDE allows you to choose a project main class that has not been added to the project, but it does not treat the class as the main class.
>   Solution: Right-click the file and choose Tools | Add to Project.
> - 25934 Description: The Goto Declaration command (Alt-G) sometimes works very slowly on some systems.
> - 11637 Description: When using the import management tool on inner classes, the name of the outer class is stripped from the reference to the inner class.
> - 28004 Description: Breakpoints that are set between the <% and %> tags of a JSP are not mapped to the correct lines in the servlet.
>   Partial workaround: In your code, do not put the <% and %> tags on their own line. Any breakpoints that you set on these lines will be mapped correctly. However, if you set breakpoints on lines between the ending and closing tags, the breakpoint will be mapped to the servlet line corresponding to the <% line in the JSP.
> - 23135 Description: If a web module contains JSP pages that have the same name but are stored in different directories, then compilation errors result when the "Build All" command is used. This problem occurs because the Tomcat JSP compiler creates two servlets that have the same pathname.
>   Workaround: Either compile the JSP pages one by one, or set the IDE integration mode to minimal. See the Tomcat Plugin help page entitled Adding a Tomcat 4.0 Installation for more information about setting the IDE integration mode.
> 31573 Description: An Invalid LOC header (bad signature) exception can occur if you access a JSP page for which a JAR file that the JSP depends on has been changed.
> Workaround: Develop Java classes inside WEB-INF/classes directory rather than putting them into a JAR file. If this is not possible or desirable, restarting the IDE will help.
> - 29657 Description: Valid web module that contains classes produced by the IDE's Form Editor does not compile.
>   Workarounds (do one of the following):
>   - On the Runtime tab, expand the Server Registry node and navigate to the node for the appropriate Tomcat instance. Set the IDE Integration Mode property to Minimal.
>   - Upgrade to JDK version 1.4.2, when it is released.
> - 24443 Description: When debugging a servlet, if you refresh your browser several times in rapid succession, an exception may occur."
>   Workaround: If the exception occurs, restart the web server before resuming debugging.
> - 20384 Description: Tag library JARs cannot be replaced in the `WEB-INF/lib` directory after parsing and executing JSPs in the relevant web module. The JSP parser, compiler, and/or executor sometimes hold on to pointers to tag library JARs in the `WEB-INF/lib` directory. On Windows systems, the result is that JARs intermittently cannot be deleted, resulting in a "Cannot delete file..." exception. On the Solaris operating system, the JARs can be deleted, but when they are replaced with new JARs, the compiler "sees" the old versions of the JARs. To get the correct JAR replacement behavior, you must restart the IDE.
>   Workaround: Develop tag libraries by referencing the TLDs and tag handler classes directly, without packaging the tag library into a JAR file until the end of the development cycle.
>   1. Create the tag library in the `WEB-INF/lib` directory and do all development there.
>   2. Set the tag handler generation root to the web module's `WEB-INF/classes` directory.
>   3. To use the tag libraries from a JSP page, either directly refer to the taglib URI as `/WEB-INF/lib/mytaglib.tld` or set an alias in the deployment descriptor with a tag library entry.
> - 26420 Description: When testing or debugging web applications, an exception (`org.apache.jasper.JasperException` or `javax.servlet.ServletException: duplicate class definition`) may be thrown. It will appear in the server log file and/or in the web browser window. This bug is a consequence of Tomcat bug 6907.
>   Workaround: Restart the Tomcat web server.
> - 12496 Description: When right-clicking a node, the contextual menu appears in the upper-left corner of the screen. This bug only occurs with some Linux window managers.
>   Workaround: In the IDE's installation directory, open the bin directory. Open the ide.cfg file and add the following option:

>       -J-Dnetbeans.popup.linuxhack=true

>   This option only works on some window managers.
> - 11020 Description: There are startup errors if you have an incompatible XML parser in the classpath.
>   Workaround: remove any stray XML parsers from your classpath (often from your `${JDK_HOME}/jre/lib/ext` directory).
> - 17358 Description: If you have version 1.4.3 or earlier of xerces.jar in your `${JDK_HOME}/jre/lib/ext` directory, the IDE does not start up.
>   Workaround: Remove the copy of `xerxes.jar` from your `${JDK_HOME}/jre/lib/ext` directory.
> - 32594 Description: If the name of an XML document or the path to the document grammar contains a space, code completion and the Validate XML command do not work.
> - 21621 Description: If a project that contains opened GUI forms is imported from NetBeans IDE 3.2.x, the Component Palette might be hidden when the Form Editor window is opened for the first time.
>   Workaround: Choose View | Form Editor to display the component palette.
> - 23029 Description: The storage format of the table model for the JTable component has been changed. It is not possible to use earlier versions of the IDE to open forms with JTable components that were created with NetBeans IDE 3.4, NetBeans IDE 3.5, or Sun ONE Studio 5 software.
> - 33222 Description: The Tools | Internationalization | Internationalize command only works for two strings at a time in guarded blocks of form objects.
>   Workaround: Call the command again and resume internationalization of the strings, two at a time. Repeat as many times as necessary.
> - 32201 Description: When you switch from a project where the Source Editor is closed to a project where the Source Editor is open, the Source Editor does not display files that you left open when you last switched away from that project. In addition, the View | Source Editor menu item is disabled. This can happen if you have imported your settings from a previous version of the IDE.
>   Workaround: Open any file. All of the files that were previously open in the Source Editor will be opened.
> - 21180 Description: Compilation errors are printed to wrong tab in the Output window when running an Ant script. This may occur if you are using the "classic" or "modern" compiler and you are running on JDK version 1.4.
>   Workaround: Use a different JDK version (such as version 1.4.1) or use a different compiler, such as external javac or Jikes.
> - 33835 Description: Some Ant tasks fail when trying to load files. This occurs if the IDE is installed in a directory that has spaces in its name.
>   Workaround: Move the IDE to a directory that does not contain spaces in the name.
> - 33474 Description: The IDE becomes slow while mounting large VCS file systems. This situation occurs because the action of updating the parser database consumes system resources.
>   Workaround: To improve performance, you can disable the updating of the parser database:
>   1. Select Tools | Options | Editing | Editor Settings | Java Editor | Expert Properties | Update Code Complete Database After Mounting
>   2. Set the property to `Never`.
> - 32186 Description: When running on Microsoft Windows systems and there is a space in the name of your user directory, a Wincat.bat node appears in the Explorer after you run the Commit command on a generic VCS filesystem.
>   Workaround: The node is harmless, so you can ignore it. Or you can remove the node by running the Refresh command on the filesystem.
> - 22481 Description: After changing font and line height correction settings, the spacing between the line numbers does not match the spacing of the lines in the Diff window.
> - 25844 Description: Line numbers do not always match when using the CVS Diff command with the Ignore Blank Lines option turned on.
> - 25263, 25259, 23846, 25271 Description: When importing projects that have mounted generic VCS filesystems from NetBeans IDE 3.2, a number of problems occur. For example, the Versioning Explorer command does not work and some settings are not preserved.
>   Workaround: Unmount and then remount all VCS filesystems.
> - 26324 Description: When running the IDE on JDK version 1.4 and using the Windows look and feel, the search highlighting in the Help window obscures the text it is highlighting.
>   Workaround: Use a different JDK version or look and feel.
> - 32019 Description: It is not possible to copy and paste containers that use custom layout managers.
>   Workaround: Set the container's layout manager to a standard layout (such as FlowLayout). Then do the copy and paste, and set the correct layout manager afterwards.
> - 29614 Description: Sometimes it takes a long time for the IDE to process XSL transformations. To prevent JVM overload, the XSLT Transform command is disabled when another transformation is being done.
>   Note: Many different XSLT processors are available. By default, the IDE uses the XALAN parser, but you may find that another parser performs better for the transformations you regularly perform. If you want to use a different parser consult JAXP 1.1 specification or check the FAQ section of the NetBeans XML module home page.
> - 22802 Description: The IDE might freeze when using the Database Explorer to connect to a database under some circumstances, such as network overload, slow response from the database server, or retrieval of a large amount of data.
> - 32093 Description: If you access the Web through a proxy, using the Javadoc Manager to mount Javadoc as an HTTP filesystem might not work.
> - 32865 Description: In the CORBA module (only available from the Update Center), the Copy Client Binding Code command does not generate the correct path. This also affects generation of Client Java source file from the CORBA Wizard. The problem also occurs when you generate a Server source file using CORBA wizard with the Naming Server binding method.
>   Workaround: Fill in the missing path manually in the Source Editor of Client Java source file.
> Use the Issuezilla bug tracking system for checking currently open bugs. Or you can find the most up-to-date version of this list at http://www.netbeans.org/community/planning/35/README.html#KnownProblems.

## Documentation

> Documentation is provided for the NetBeans IDE in the form of online help. To access all of the available online help, choose Help | Contents.

## More Information

> There is extensive information on the NetBeans project web site, http://www.netbeans.org/. Included on the web site are a FAQ and instructions on how to subscribe to mailing lists where you can ask questions, post comments, or help others.

> As NetBeans is an open-source project, you can get access to the source code, bug database, and much more at http://www.netbeans.org/.