NetBeans IDE 6.5 -- New and Noteworthy in Milestone1



UNC paths on Windows

Now the NetBeans IDE supports UNC paths like
. It is possible to install the IDE to UNC like folder and also it is possible to create projects and other resources on UNC paths.

File Associations options panel and Open As... action

A new panel in options dialog which allows to say to NetBeans that files with certain extension should be treated as files with a certain MIME type (see #133773). You can add a new extension to the list of modify existing one. If you want to restore default setting for selected extension, you just click the Default button.


In connection with the above change there was also added a new Open As... action. It is enabled only for files which are not recognized by the IDE. User can choose one from supplied MIME types and from now on all files with this extension are treated as of choosen MIME type.


Running some IDE distributions on JRE

Certain IDE distributions (e.g. PHP IDE) don't require Java JDK to run on, JRE is enough.

Plugin Manager now checks OpenIDE-Module-Package-Dependencies of all modules which user selects to be installed. If the user's IDE is running on JRE and the unsatified package dependency might indicate that JDK is required, user is warned about it and the plugin installation is not allowed.



Quickly search for action or type is now easy. Use Ctrl-I. This is not only an end-user feature, but also offers an API. Its SearchProviders can easily become part of every NetBeans module. A wizard supplying easy generation of providers will become part of M2.


Variable based paths in J2SE/J2EE projects

Since NetBeans 6.1 it is possible to control whether JAR/Folder added to project classpath is referenced via absolute or relative path. Now it is also possible to define a global IDE named variable pointing to a folder and use this variable as a base for referring to JARs/Folders.

This feature further simplifies project sharing between users. In scenario where a project depends on JARs for which:

  • it is not desirable to store them in VCS; and which
  • can be placed in different locations for different users

a named IDE variable can be used.

The variables are managed via Tools -> Variable menu item:


In above screenshot single variable is defined with these details:


When variable based JAR/Folder is added to project classpath you can see its path starting with variable name (and tooltip showing absolute path):


Variable based JAR/Folder is added to classpath via standard means of "Add Jar/Folder" button in classpath customizer (or "Add JAR/Folder" action on project's Libraries node in project's view). Custom file chooser is shown with one new option "Use Variable Path":


Just browse for your JAR/Folder and if selected file is under a variable the option gets enabled. Alternatively press "..." button and setup a new variable.

If a user opens project with a variable based path and the variable is not defined in user's IDE then standard broken reference warning is shown to advice user to define variable:


Eclipse project import and synchronization

The Eclipse project import feature facilitates mixed IDE development teams. It allows you to select Eclipse projects from an Eclipse workspace and generate NetBeans projects for them. The generated NetBeans project keeps a link to the original Eclipse project and will update itself after any relevant change: for example, changing the classpath of the Eclipse project. The update is done automatically when the NetBeans project is opened, or can be explicitly requested via a context menu item "Synch with Eclipse" on the project.


This is early preview of the Eclipse import feature which will be fully implemented in Milestone 2. (It supersedes the limited Eclipse import feature available in former NetBeans releases on the update center.) We would appreciate feedback and real-life Eclipse projects for testing; best is to use Issuezilla. (component ide, subcomponent eclipse project import)

Enhanced Java Web Start support

Support for creating applets that can be deployed via Java Web Start was added to NetBeans IDE. Note: the functionality is available in JDK 1.6.0 update 10.


Each application or applet deployed via Java Web Start can specify external resources (usually other JNLP file in internet). Dialog is opened by clicking on 'External Resources' button.


Each applet can have number of properties defined in JNLP file, those properties can be defined in dialog that is opened by clicking 'Applet Parameters'. Also you can set applet dimensions in the dialog.



Sliding windows support original window sizes

Slided-in windows can keep their preferred size instead of being stretched to the whole height/width of the IDE window.

(see #135318).

Possibility to configure some Window System properties for applications based on Platform

Some window system features can be turned off by branding of module.


TreeTableView replacement introduced

OutlineView is a new replacement for buggy TreeTableView. It supports drag and drop, in-place editing of tree cells, enhanced sorting etc. The data model is fully compatible with TreeTableView.

(see #33281).

Opening Options dialog with preselected subcategories

API in options.api module has been changed to allow open Options dialog with preselected subcategory (see #109538). In your code you can call OptionsDisplayer.getDefault().open("CategoryID/SubcategoryID"); where CategoryID and SubcategoryID are registration names from layer. For selection a panel under Miscellaneous category use OptionsDisplayer.getDefault().open(OptionsDisplayer.ADVANCED+"/SubcategoryID");.

Support allowing a user to drop a text into the palette

It is possible to drag and drop any text to the Palette window to create a new code snippet. It works for HTML editor palette only at the moment, more document types will follow soon.


Features first introduced in Early Access for PHP

The NetBeans IDE Early Access for PHP was released in April at the same time as NetBeans 6.1. Milestone 1 of NetBeans 6.5 now contains all features introduced in this release.

Next, in NB 6.5 M1, PHP features are a part of the "all-in-one" distribution of NetBeans, so they can be used together with all the other NetBeans features. Of course, there is still the slim PHP edition of NetBeans, targeted for PHP development specifically.

See below for more features added in NetBeans 6.5 Milestone 1, that were not present in Early Access. Also, to keep up with the new features added to NetBeans PHP support, make sure to check and bookmark the NetBeans PHP Team Blog.

Enhancements in Code Completion

The Code Completion functionality evolved a lot since the Early Access Release, mostly due to intensive bug fixing. The new features include support for PHPDoc tags and code completion for elements defined outside of the edited file and the files it explicitly includes. Such elements show up at the end of the list and if chosen the "require" directive is added automatically.

Database-related code snippets

Generate code to connect to a MySQL database and to display the data in a database table. These snippets are available under the Generate Code action [[[Alt+Insert | [Alt+Insert]], just like in the Java editor.


Find Usages

Available also for PHP development. Right click the item and select "Find Usages" or hit Alt-F7.


Multiple project configurations

  • running, debugging either as script or as web page in browser
  • index file, arguments ...



CSS code completion

Completion shows documentation for css properties. Code completion for css property values has been improved.



JavaScript Debugger

  • Supported browsers
  • Firefox 2.0.0.X
  • Requires Firebug 1.1beta. An automatic installation is attempted when not found.
  • Add & delete breakpoints in JavaScript code
  • Html Files
  • JavaScript Files
  • URL source resulting from server side technologies such as JSP
  • Manage debugger session
  • View & navigate source artifacts
  • Html Files
  • JavaScript files
  • URL source resulting from server side technologies such as JSP
  • View window/frame structure
  • View & navigate JavaScript Callstack
  • View local variables
  • Set & delete watches
  • View (static) browser DOM in the IDE
  • J2EE & Ruby Project integration
  • Debug Client Session: Run the project and launch a JavaScript debugging session in NetBeans, attached to the Firefox 2.0.0.X browser where the client-side application is running
  • Source Mapping: Correlate a client-side application (browser DOM) identified by a URI with the corresponding source file in the J2EE project (limited mapping in M1) Mapping for:
  • Html files
  • JavaScript files

User Guide

JavaScript Library Manager

Update: The JavaScript Library Manager described below, originally targeted for Milestone 1, has been deferred until Milestone 2 / Beta.

  • Utilizes NetBeans Library Manager to manage JavaScript libraries
  • Wizard to add JS libraries to Java EE, Ruby, or PHP projects (Tools->Add JavaScript Libraries)

Bundled JavaScript Libraries

Update: The Bundled JavaScript Libraries described below, originally targeted for Milestone 1, has been deferred until Milestone 2 / Beta.

  • Yahoo UI
  • WoodStock
  • jQuery
  • dojo
  • scriptaculous
  • prototype


Javadoc Analyzer

This plugin provides ability to check and fix Javadoc comments in your source code. Just select project/package/files and invoke "Tools | Analyze Javadoc". Auto comment functionality is back.


Call Hierarchy

Show all callers/callees in the search scope of the selected member.


Formatting Settings per Project

You can specify formatting settings individually for each project


CamelCase code completion

Code completion improved. Just write first letters of each word in method to get smart code completion. For instance "iL" stands for invokeLater.


Improved Encapsulate Fields Refactoring

Encapsulate Fields Refactoring Improved. New options available.


Option to remove whitespace at end of line

Top voted enhancement finally implemented

XML and Schema Tools

  • Element and Attribute Value code completion. See issue 91823
  • Improved visibility for external schema components. See issue 134861 and issue 122836.
  • Improved sample XML generation from schema.
  • Improved formatting in XML documents.

For a complete list of fixes, click here.


For the first time NetBeans directly supports Groovy, dynamic language for the Java Platform and Grails, web application framework that leverages the Groovy language. You can mix Groovy with Java in an easiest possible way to take advantage of Groovy dynamic nature in your Java projects, or develop 100% pure Groovy applications. For the web tier, IDE fully supports the Grails framework, including its generators and GSP.


Groovy editor with syntax highlighting, navigator, code folding, occurrences highlighting, code completion, etc...


Java SE Project Integration

Groovy now integrates nicely with Java in Java SE project. You can call Groovy from Java and Java from Groovy. If you want to use pure Groovy project, just create new Java SE project, add Groovy class or script and press Run - that's it.


Grails support

NetBeans understands Grails applications. You can create them or open any existing Grails application without any import. NetBeans doesn't even write any metadata into your Grails application.


You can use multiple Grails commands integrated into NetBeans and of course you can run your Grails application directly from NetBeans, including controlling the status of you application from Services window.



Improved New Connection dialog

Now the dialog for creating a new database connection does not expect you to know the details of the JDBC URL to open a connection. If you want to modify the URL, however, you can do so, just click on the "Show JDBC URL" checkbox. Changes to the URL are reflected in the fields and vice versa.


SQL history dialog

SQL that has been executed is saved to a file in the userdir and available for viewing in a dialog and also SQL can be selected and reinserted in an existing SQL file. Image:sql_history_icon_NewAndNoteWorthyMilestone1NB65.png


Server Support

GlassFish V3 integration module.

Is now part of the Web & Java EE and Ruby bundles. No need to get the modules from the update center.

Web frameworks (Spring, Hibernate, JSF, JSF CRUD Generator, JPA)


  • Improved Java class FQN completion

Code completion is now faster than the earlier version. For efficiency, Java class FQN completion is now a two step process. Most of the times, a user will need only classes defined locally in the project (source classpath). Hence the first CTRL+SPACE will list only the items in the source classpath, as shown below: Image:cc_step1_NewAndNoteWorthyMilestone1NB65.png

If the user wishes to add an item not in the source classpath, he can press CTRL+SPACE again. Also, if the typed prefix does not match any local item, the completion will automatically switch to show all items instead of just local items. Image:cc_step2_NewAndNoteWorthyMilestone1NB65.png

  • Go to Spring Bean dialog

A Go to Spring Bean dialog is similar to the Go to Type dialog and will allow the user to quickly navigate to a given Spring Bean definition by it's name. The user selects the main menu item Navigate | Go to Spring Bean... or the keyboard short cut Alt + Shift + B to invoke the Go to Spring Bean dialog. Image:menu_goto_NewAndNoteWorthyMilestone1NB65.png


  • Refactoring support for Java properties

When refactoring Java Bean property getters and setters, the corresponding usages in the Spring XML Configuration files are also modified. Image:ren_ref_pre_NewAndNoteWorthyMilestone1NB65.png

Hibernate (Available via Development Update center for M1)

  • Reverse Engineering support. With an existing configuration, POJOs and mapping files can be generated using this feature. See Reverse Engineering for more details


  • HQL query execution support. Execute HQL queries right inside the IDE. Queries can include joins and clauses. See HQL Editor for more details


  • Refactoring of hibernate mapping files is supported. See Refactoring for more details.


JSF, JSF CRUD Generator

The editor support for both JSF Configuration Files and JSF JSP Pages are both improved. The improved features include: Code Completion, Hyperlink, Refactoring, and Find Usage. More details can be found at Editor Support in JSF Configuration Files and JSP Files.

  • Code Completion: On top of the generic JSP editing features, the JSP editor for the JSF page file provides additional code completion for Managed Beans and Resource Bundles.
Example Code Completion UI
Managed Beans Image:JsfEditorSupportCodeComplete2_NewAndNoteWorthyMilestone1NB65.gif
Resource Bundles Image:JsfEditorSupportCodeComplete4_NewAndNoteWorthyMilestone1NB65.gif

  • Hyperlink: By using the Hyperlink inside the JSF configuration files and JSF JSP Pages, developers can fast navigate from one source to another reference.
JSF Configuration Files Example File opened

<managed-bean-class>foo.ManagedBean</managed-bean-class> the Java file under package foo
<to-view-id>/Page2.jsp</to-view-id> the JSF page file Page2.jsp under the context root

JSF JSP Pages Example File opened

</span><h:outputText value="#{ManagedBean.min}"/></h3> </tt>

the JSF configuration file on position where the managed bean been defined
<tt> <h3><h:outputText value="#{ManagedBean.min}"/></h3> </tt> the appropriate Java file on position where the getter for the property been defined

  • Refactoring Support: The refactoring support processes all files in the list of JSF configuration files. Bean and Java class/method usages are found in bean and alias elements and their subelements, as well as elements in the util namespace.
Example Refactoring UI
Managed Beans Image:JsfEditorSupportRefactoring1_NewAndNoteWorthyMilestone1NB65.gif
Folder / Package Image:JsfEditorSupportRefactoring2_NewAndNoteWorthyMilestone1NB65.gif

  • Find usages: The JSF support will plug into the Java find usages to show JSF beans definitions which refer to Java elements (classes, methods, fields, properties). The Find Usages action will be available for bean definitions as well, to show beans used by other beans.
Example Usages UI
Managed Beans Image:JsfEditorSupportUsages_NewAndNoteWorthyMilestone1NB65.gif

  • The JSF CRUD Generator now applies default styles.



In NetBean 6.5, the Entity Classes from Database wizard has one additional panel to allow the user to configure the following mapping options:

  • Association Fetch: can be default, eager or lazy. By default, it is default, meaning no fetch attribute will be added to the relationship annotations
  • Collection Type: The collection type used for OneToMany and ManyToMany CMR fields. Can be java.util.Collection, java.util.List or java.util.Set. By default, it is java.util.Collection.
  • Fully Qualified Database Table Names: if checked, catalog and schema attributes will be added on @Table. By default, it is not checked.
  • Attributes for Regenerating Database Tables: if checked, nullable (when it is false), length (for String type), precision and scale (for decimal type) will be added on @Column. Unique constraints will be added on @Table if checked. By default, it is not checked.

The panel is at the last step of the wizard. It is optional.



The UML feature is not in M1, but is planned for Beta. The development team has migrated UML to the NetBeans Visual Library making UML completely open source. The main modeling palette was also simplified and context palettes were added, enabling easy and rapid creation of modeling nodes and relationships. The team has completed the main implementation and is focused on stabilizing the code for release. Please see UML Current Projects for additional information.



Mobility Data binding provides a simple and consistent way for applications to present and interact with data in the Visual Designer. It utilizes the Databinding libraries available in Netbeans Mobility. New custom component DataSet which provides data for UI components.

Supported components in Milstone 1:

  • TextField ( Text, Label)
  • ImageItem (Image, Label)
  • DateField (Date, Label)
  • StringItem (Text, Label)
  • rest of the Items ( Label)

Databinding support in the custom property editors:


Generated code for empty DataSet:


Custom Component Support

Custom Component Support helps to create the Visual Mobile Designer Custom Components. It generates all of the necessary Custom Component infrastructure including: Module project Infrastructure, components descriptors and producers as well the layer.xml file.

New Project Custom Component wizard.


Generated project and classes with one component descriptor and one producer.


Add Mobile Custom Component wizard.


Full description of this feature i available here: Custom Components API Project Support - DRAFT

New SVG Support

Motivation is to extend group of existing SVG components to provide better support for creation of compelling UI on mobile platforms using SVG technology.

New components available in the SVG library:

  • SVGForm
  • Button
  • RadioButton
  • CheckBox
  • ComboBox
  • Label
  • List
  • Slider
  • Spinner
  • TextField

SVG Components in action:



New Multithreaded Debugging Support

This is a summary description for the new Multithreaded Debugging Support that is available in M1 NB 6.5. These bits have been done as a first phase of the overall NB debugger redesign effort, which goal is to significantly improve the debugging workflow and usability.

Debugging Window

[[{ImageSrc=MultithreadedDebugging/DebuggingWindow.PNG} | {Image src='MultithreadedDebugging/DebuggingWindow.PNG}]]
In order to improve UI for multithreaded debugging and also willing to reduce the number of debugger views, a new (unifying) debugger view is introduced. This view (referred as Debugging View) integrates current Sessions, Threads and Call Stack views being displayed in the Explorer group by default.

From the technical perspective, the Debug view is organized as (in general) a list of sessions, having each session as a list of threads, each suspended thread than expandable to its call stack and more. Debug view is customizable via context options only showing typically needed info by default. With the 'Suspend Table' switched on, any thread can be resumed/suspended by one click on the dedicated button.

If there is the debugger counter displayed in the editor and another thread encounters a breakpoint, the current thread will not be automatically switched. Instead, a non-modal panel is displayed in the bottom of Debugging view informing that there are new breakpoint hits waiting; there is also a drop-down button switching the debugger to the next (or selected) breakpoint hit. Having this non-modal notification, users are allowed to finish their debugging of current thread (e.g. expression evaluation) and switch to next breakpoint hit when it fits to the workflow.

Current Thread Chooser

[[{ImageSrc=MultithreadedDebugging/CTChooser.PNG} | {Image src='MultithreadedDebugging/CTChooser.PNG}]]
When doing a multithreaded debugging, it is often needed to quickly switch between particular threads; e.g. when doing a stepping sequence in two threads alternately. For such purpose we introduce a new action--Current Thread Chooser (CTRL+8). In fact, it is an analogy to application switching common in OS environment. With this feature, it is really straightforward to revisit any thread for debugging or switch to a particular thread for the first time.

'Other Thread(s) Suspended Here' Gutter Navigation

Anytime the debugger displays the thread icon in the editor gutter, the user is informed that there is/are one or more suspended non-current thread(s) at this line. The list of these threads can be seen in the icon tooltip, and it is also possible to switch debugging to any of these threads via the context menu. Strictly speeking, it is the Source->Threads navigation available in the editor gutter.

Deadlock Detection

[[{ImageSrc=MultithreadedDebugging/DeadlockDetection.PNG} | {Image src='MultithreadedDebugging/DeadlockDetection.PNG}]]
The debugger automatically searches for deadlock among all suspended threads. When a deadlock is detected, a non-modal notification is displayed having emphasized involved threads. Detailed monitor info is also available displayed in dedicated monitor nodes.

New Threading Model

In order to improve multithreaded debugging, we decided to change the way how debugger manages debuggee threads. The main issue related to current model (NB 6.1 and older) is likely the fact that any step resumes all threads regardless there are threads intentionally suspended by the user or not. This can be limiting e.g. in case of debugging race conditions or deadlock issues. The natural solution to this problem is to resume only the current thread leaving other threads suspended if they are (may have happened via breakpoints or Suspend action). Obviously, this change needs the default breakpoint to suspend only the breakpoint thread, otherwise stepping could lead to so-called Deadlock Caused by Debugger.

Current Model Summary (NB 6.1 and older):

  • Default breakpoint suspends all threads.
  • Step resumes all threads when invoked and suspends all threads when completed regardless there are threads intentionally suspended or not.
  • Evaluation is done only resuming the current thread (by default), which may easily lead to 'deadlock caused by debugger' in current model.
  • 'Step interrupted by a breakpoint' issue exists with default breakpoint.

New Model Summary:

  • Default breakpoint only suspends breakpoint thread.
  • Step only resumes current thread when invoked and suspends current thread when completed.
  • Evaluation is done resuming the current thread (other threads unsuspended by default breakpoint or step). No deadlock caused by debugger might happen as far as no thread is explicitly suspended by the user (via suspend action or some breakpoint).
  • 'Step interrupted by a breakpoint' issue does not exist with default breakpoint. (Except the stepping thread itself encounters a breakpoint.)

GUI Builder

ButtonGroup visualization

When you select a ButtonGroup or some component in a ButtonGroup then the GUI builder shows you which components belong into this group.


Preview in Nimbus look and feel

If you use JDK 6 Update 10 then you can preview your form in the new Nimbus look and feel. We have made this preview more reliable and accurate (within the limits of <tt>javax.swing.UIManager</tt> design). Besides the design preview you can also set the Nimbus look and feel for runtime - this is easily possible for Desktop Java Application projects in the Project Properties window (go to the Desktop App panel).


TreeModel editor

New TreeModel property editor allows you to prototype your JTree easily.


ListModel and ComboBoxModel usability enhancements

We rewrote property editors for ListModel and ComboBoxModel. It is much easier to use them by now.


Web Services

RESTful services from database

A new wizard allows for the creation of RESTful, JSR311-based services directly from database tables. This facility is in addition to the wizard that creates services from JPA entities.

Consuming popular SaaS services in Php

Web Services nodes in the Services tab of Netbeans 6.5 support Drag-n-drop to Php files as shown below.



Code completion accuracy

Code completion accuracy is much improved in milestone 1 compared to NetBeans 6.1. There are very few known cases where an incorrect choice is presented. So the known "inaccuracy rate" is nearly 0. There are known situations where valid choices are not presented to the user. For a range of mid to large scale applications those cases (where valid choices are not shown) is under 5%. Work to further improve accuracy is ongoing.

Call Graph

Show all callers/callees of the selected function.

Direct call graph:


Reverse call graph:


Error highlighting and more types of semantic highlighting

C/C++ editors highlights basic errors. Semantic highlighting for typedefs, class fields and function names was added.



  • Rake
  • internal unification brings more smooth workflow to users
  • Debugger
  • support for conditional (expression) breakpoints
  • support for breakpoint on exception (catchpoint)
  • switched to the new engines versions
  • Projects
  • useful pre-generated Rakefile (clean, gem, packages, rdoc, spec, test, .... tasks)
  • possibility to pass JVM options to the JRuby (e.g. -Djruby.objectspace.enabled=true)
  • Platform
  • Rubinius Support
  • sudo support - 'gksu' so far (issue 128575)
  • Options for tweaking Gems fetching in Gem Manager (-a, -d)
  • Rails
  • updated the bundled Rails to 2.1.0
  • support for running the Rails console in different environments
  • possibility to specify the version of Rails for new projects (in case there are more than one version installed)
  • support for 'destroy' in the Rails generator
  • Test Runner
  • New Test Runner UI for displaying test results


Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo