NetBeans IDE

from Wikipedia, the free encyclopedia
Apache NetBeans

Apache NetBeans Logo.svg
Apache NetBeans 11 Linux.png
Apache NetBeans IDE 11.0
Basic data

developer Apache Software Foundation , Oracle Corporation
Publishing year 1996
Current  version 12.0
( June 4, 2020 )
operating system platform independent
programming language Java
category IDE
License Apache 2.0 license , up to version 8.2: CDDL , GPL (v2 with Classpath Exception, from version 6.0)
German speaking Yes

NetBeans IDE (often just called NetBeans ) is a free, integrated development environment that was written entirely in the Java programming language and runs on the NetBeans platform. The NetBeans IDE was developed primarily for the Java programming language, but also supports C , C ++ and dynamic programming languages. The IDE is comparable to the Eclipse IDE or the commercial versions of JBuilder or IBM Rational Application Developer (based on Eclipse).

NetBeans is an open source project that can be used as a platform for your own applications.


In 1996 some students from the Czech Republic developed a project called Xelfi . The aim was to offer Java developers an integrated development environment that should be similar to the Borland Delphi IDE of the time. The main goal of the students was to develop an IDE that was intended to greatly simplify the graphical development of the user interface ( GUI ).

The Xelfi student project eventually became NetBeans. The first commercial versions were then published under the name Developer 2.0 and 2.1. In May 1999 the Developer Beta 3.0 came onto the market. However, the final version of NetBeans Developer 3.0 never appeared, as NetBeans was taken over by Sun Microsystems in October . A short time later, Sun released the “Forté for Java Community Edition IDE” program, which was based on Developer 3.0. The name Forté was chosen because Sun had also acquired a component development company called Forté at the time. In June 2000, Forté was again made available to the open source community under the name NetBeans.

To the freely available NetBeans IDE version, there were other paid versions, including Sun ONE Studio and Sun Java Studio Creator , the special function and plug-ins for Web servers, HTML development, UML and SOA have been extended . Since November 2005, Sun has integrated all Java IDE products into NetBeans as plugins. With the takeover of Sun Microsystems in 2010, in addition to OpenOffice and MySQL , NetBeans was also taken over from Oracle .

In 2016, Oracle began handing over the entire NetBeans project to the Apache Software Foundation . During the handover process, NetBeans was subjected to an Apache Incubator project and the entire source code and the organization of the project were reviewed. The source code was also re-licensed according to the Apache 2.0 license. As a result, there were almost two years between the release of major versions 8.2 and 9.0 and NetBeans 9.0 actually only supported Java SE. Additional language support then returned in subsequent releases. In April 2019, NetBeans was finally successfully upgraded to a top-level project. The transfer of the source code from Oracle to Apache has not yet been fully completed to this day (as of October 2019).

Supported languages

The NetBeans IDE directly supports the programming languages ​​Java, C, C ++, Fortran , JavaScript , Groovy and PHP . With plugins, Netbeans can also convert languages ​​such as Ada , Adobe Flex , Clojure , Coco / R , Erlang , Fortress , Ruby , JavaMath , JavaFX , Perl , PL / SQL , Prolog , Python , Regular Expressions , Scala , SmartFrog , Tcl , TeX and LaTeX , VRML and X3D can be expanded.

NetBeans IDE download packages

Up to version 8.2, different versions of the IDE were offered as download packages that focused on a specific application.

Java SE

The NetBeans IDE for Java SE can be used to develop applications based on the NetBeans platform. It provides support for the development of graphical Java desktop applications, command line applications or Java applets . The Java SE download package offers a JavaDoc integration that supports the commenting of the created code and uses an analysis function to check existing comments for completeness and errors. For the test case generation, the Java SE download package integrates JUnit 3 and 4. Apache Ant and Maven scripts are supported as project build systems .

Java EE

The Java EE download package is used to create web and enterprise applications based on Java EE 8. This includes the development of websites, servlets, web services, Enterprise Java Beans (EJB 3.1), JSF, JPA and offers support for JSR 299 (Support for Contexts and Dependency Injection).

Web frameworks

The project wizard includes Java Server Faces (JSF), Spring , Struts and Hibernate . This makes it possible to create projects that use these frameworks. NetBeans automatically creates all necessary configuration files and copies all required libraries into the correct directories. This eliminates the need for time-consuming adjustments to the build scripts by hand. The automatic completion supports all necessary extensions for these configuration files. The New File Wizard contains templates for JSF Managed Beans, Struts Actions or Struts Form Beans. "Framework support" can be added to existing projects.

Web services

With the support for web services it is possible to create corresponding clients in J2SE applications. The libraries required to create and operate such clients are supplied with NetBeans. Furthermore, a direct call of a web service from a JSP is supported without the detour via a servlet . The package is rounded off with a new wizard, which enables the creation of a WSDL file directly in the IDE , which in turn can be used to generate special files relevant for a web service.

Application server

To comply with the Apache license, the standard support for the application servers JBoss and WebLogic has been removed.

Only GlassFish v5.0.1 and Payara are included as standard.

C ++ and C

The download package for C ++ and C enables you to create applications based on C ++, C or Fortran with the Netbeans IDE. New projects can be created from scratch, from existing code or from binary files. Code completion for C ++ and C is configured automatically by analyzing the creation rules from the associated Makefile or project properties for each source file and determining the dependencies. The editor supports syntax and semantic highlighting, automatic indentation and formatting, code templates and comment support. As with other IDEs, different configurations and make targets can be created and managed. The GNU, Cygwin and MinGW compilers are supported as standard compilers. Further compilers can be added by the user.

Test and deployment

Unit tests can also be created directly from the IDE for sources written in C ++ or C. Graphic support similar to JUnit from the Java SE package is offered. The compiled application can be automatically deployed in tar , ZIP , SVR4, RPM or Debian format.


The debugger for C ++ and C projects is based on the GNU debugger , but other debuggers can also be integrated. Multiple debugger sessions are supported, as are line and function breakpoints. All debugger functions are integrated in the IDE.

Qt support

NetBeans offers full support for Qt , which means that all Qt file types can be created and edited (i.e. Qt files, GUI forms, resources and translation files). The standard Qt tools such as Qt Designer, Qt Linguist or qmake are fully integrated.

Remote development

A special feature is the complete support of remote development for C ++ and C projects. This means developing, building, executing and debugging projects entirely on a remote computer. For the user, the handling of these projects does not differ from local development.


Used to create web applications. Supports JavaScript , CSS3 and, from version 7.3, also HTML5 - syntax highlighting . The Zend Framework , Symfony2 and the Symfony 1 Framework are also supported.


The All Download Package includes all of the featured download packages, plus support for Groovy and Java application development for mobile and embedded devices.

NetBeans IDE in detail


There are a number of extensions to NetBeans called “plugins” that add special techniques or tools to the IDE. The commercial or free plugins can be obtained from the project page or directly from the NetBeans IDE. They are then integrated into the IDE using a simple function. The modularization of the NetBeans IDE goes so far that even the entire project management can be exchanged. For example, it is possible to install a Maven plug-in and use it to manage Java projects.


Using the graphical debugger , breakpoints can be activated and deactivated directly in the source code (also during runtime). Breakpoints can be fixed, conditional or signal-oriented. Conditional breakpoints are only executed when a calculated Boolean expression is met. Signal breakpoints for example, respond to certain exceptions ( exceptions ) or entry and exit points of methods. The debugger also masters interactive breakpoints ( run to cursor and run to method ).

Variables to be observed can be entered using code completion (as in the normal editor). Any Java expressions can be calculated during runtime and variable contents can be changed at runtime. A special overview makes it easier to display large observed arrays. The variable content can be displayed in the source text using a tooltip .

As of JDK 5.0, method blocks can also be modified during runtime.

The debugger is multisession and multithreading capable, which means that several programs can be monitored at the same time and several threads in each program .

GUI builder

GUI builder

The Matisse GUI Builder enables a graphical GUI design without having to be familiar with the peculiarities of Swing layout managers . It also offers its own layout manager (GroupLayout), which became part of the Java Platform, Standard Edition with version 6 , and can convert the layout to the null layout. The components can be added to the shape using drag & drop , whereby the orientation, size or other properties can be easily adjusted or automatically specified by the IDE. Text elements can be edited directly in the GUI builder. Matisse supports JavaBeans as components and containers. All descriptive texts can be internationalized and read from translation tables (resource files).

Source editor

Editor functions

  • Java tips to help you create your source code
  • Component palettes for easy insertion of code snippets (e.g. HTML , JSP or SQL ) into a JSP or HTML page via drag & drop
  • Error flag, which shows whether the file is compilable or not, and gives an overview of all errors, warnings, todos and bookmarks in the source code
  • Enclosing a selected statement with a try / catch block
  • SQL editor with syntax highlighting
  • easy addition of XML files, such as document type definitions (DTD) and schemas ( XSD ), for use in code completion and validation
  • Introduction of a possibility to choose from predefined sets for keyboard shortcuts or color schemes (e.g. in Emacs style) or to adapt these according to your own requirements

Code completion of Java source code

For the completion of classes, methods and fields, code snippets from the following areas can be generated with the code completion box:

  • Code from configurable templates
  • Getters and Setters
  • Anonymous inner classes
  • Method body for methods that are overwritten or implemented
  • try / catch blocks with suitable exceptions

In addition, code can be generated by using certain abbreviations ( camel case identifier). For example, the entry of AIOOBE can be automatically replaced by ArrayIndexOutOfBoundsException .


The Java editor can do the following refactorings including restoring and previewing the results:

  • Rename - renaming packages, classes, methods and variables
  • Extract Method - Extract sections of code within methods into new methods
  • Change Method Parameters - interactively change the signature of a method (change the order of the parameters)
  • Encapsulate Fields - convert direct accesses to object fields into getter and setter methods
  • Pull Up - Move a method to the super class
  • Push Down - Move a method into a subclass
  • Move Class - Move a class to another package
  • Move Inner to Outer Level - Move an inner class into a normal class
  • Convert Anonymous Class to Inner - Convert an anonymous class to a named inner class
  • Extract Interface - Generate an interface framework from the class signature
  • Extract Superclass - Extract a superclass from a class
  • Use Supertype where Possible - Convert casts to super classes
  • Safe Delete - Tests before deleting fields, methods and classes whether usages exist

Of course, all references throughout the project are adjusted when a refactoring is done. If the order of parameters is to be changed using Change Method Parameters , each call in the entire source code is adapted accordingly. If you move a class to another package, all import commands are adapted with the refactoring process.

In addition, the use of variables, parameters, methods and classes can be listed ( Find usages ). Using fix imports , import instructions can be added to the source text automatically and interactively.

Additional modules make it possible to find unused variables, empty catch blocks or dead methods. With these modules, the already very powerful refactor functionality of NetBeans can be expanded further.

Refactoring for other languages ​​like C ++ and C isn't that powerful right now. However, a comparable range of functions should also be achieved in the next versions.


The Profiler is supplied from version 6.0.

In order to create a secure, scalable application, Java developers need information about the runtime behavior of their application. The NetBeans Profiler provides this information. Innovative techniques allow the developer to measure his application with little effort. The results of the profiler are clearly structured and easy to interpret. The applications to be measured can be located on the local or a remote system.

The profiler can do the following:

  • Monitor CPU load , CPU speed, and CPU execution
  • Memory usage
  • Memory monitoring with memory leak tests
  • Monitoring of concurrent processes (threads) and their status
  • Support for the JDK 1.4.2, JDK 5.0 and JDK 6.0
  • Profiling of running applications
  • Saving profiler images for post-processing
  • Profiling of remote VMs (via network protocols)

Thanks to its integration into the IDE, the Profiler enables you to track down performance problems and memory problems.

The Profiler is based on a research project by Sun Laboratories that specifically deals with analysis techniques for Java applications. The profiler uses these methods to dynamically examine and evaluate the bytecode at runtime. This means that it can also handle complex and large Java applications.

The Profiler uses dynamic runtime instrumentation to reduce the load on the runtime tests. The saved program remains untouched. The profiler marks for statistical evaluations are added in memory before they are executed. With dynamic means that the instrumentalization can always be activated and deactivated without exiting an application or restart the need.

  • Lean measurement process - the profiler can be used to measure specific sections of the application. The remaining program parts run without influencing the profiler. The parts of the application to be measured and the examination aspects (CPU, memory, ...) can be changed during runtime.
  • No influence on program execution - the application can be started and executed as usual without taking the Profiler into consideration. The profiler can be switched on at any time to run the program. When the measurement process is finished, no instructions remain within the application code.
  • Task-Based Profiling - Measuring the runtime behavior of an application is not easy to handle. The NetBeans Profiler has some specifications that already cover standard tasks (monitoring, memory usage, ...) in profiling. The most important configurations have already been made in these default settings and only a few adjustments are required. Experienced users can carry out self-configured measurements.

Ant support

The project system is based on a strong integration of Apache Ant scripts. These can be adapted and also examined with a debugger.

Version control

The following version control systems are directly supported by NetBeans :

The support fits into the typical programming workflow and hides the abstract operation using known commands. The IDE automatically detects working directories and lists all changed files in the versioning window . Version support is also integrated into the project system and the refactoring functions.

Typical functions of the version control system can be accessed directly via the context menu. It is easy to manage multiple repositories and branches. The versioning window shows an overview of the status of files, folders, packages and projects. Differences between individual versions can be displayed with the Diff command . In addition to the source text, project metadata can also be distributed.

In addition to the remote version control systems, NetBeans maintains a so-called local history for each source text . This allows changes to the source text to be tracked and, if necessary, reversed even without the support of a version control.

Developer collaboration

The Developer Collaboration allows developers and programming, simultaneously and in real time in a kind of chat developing mode of an application (synchronous collaboration). The registered team members can follow every change directly, discuss them via chat, carry out code reviews or even compile the project. The codeBeamer module from NetBeans allows additional information exchange with the help of trackers, document shares and forums (asynchronous collaboration).

Development of NetBeans modules

The IDE comes with wizards for developing modules for NetBeans IDE and other applications based on the NetBeans platform. This makes it very easy to develop complex fat clients based on the NetBeans platform, or to program command extensions for NetBeans. Each user can develop his own modules and make them available to others via the NetBeans Plugin Catalog .


The NetBeans Platform is an application runtime environment and can be used as the basis for generic desktop applications based on Swing (for example the NetBeans IDE ). Since most applications have similar requirements, such as menus , document management, changes to settings and the like, the NetBeans platform provides corresponding functions. The developer creates the application code as one or more NetBeans modules and adds them to the platform. This allows the developer to concentrate on programming the business logic as an essential task. The resulting application is platform-independent.

Some features of the platform:

  • User interface management - windows, menus, toolbars and other components are made available. As is usual in Swing , the platform can also be expanded with your own graphic components.
  • Data and design management - The platform provides a wide range of tools with which data can be displayed and manipulated.
  • Editor - The NetBeans editor can be used by the application. The editor's tools can be expanded quickly and easily and put together appropriately in the menus.
  • Settings Management - The NetBeans file system infrastructure allows abstract data to be managed. Regardless of whether files are local or remote, via FTP, CVS or in a database, access to them is transparent and can be supplemented by your own types of data storage for the platform. All applications built on the NetBeans platform are web-enabled.
  • The Wizard Framework - The NetBeans platform provides simple tools for creating extensible, user-friendly wizards that guide users through complex issues.
  • Configuration Management - The NetBeans platform takes over repetitive tasks such as remote data access, management and storage of user configurations . The application therefore consists of the platform and the logical code that provides the actual functionality.
  • Storage management - Storage management is based on the abstraction of file-based data access. In the NetBeans concept, files are local files, remote files on an FTP server, in a CVS repository or in a database. Due to the abstraction of the data access, the access to files is transparent for all other modules, i.e. they do not have to worry about the actual data access, but can do this via the platform's memory management module.
  • Platform independence - Since the application base, like the NetBeans IDE, is completely written in Java, applications based on it are by nature almost independent of an operating system (if a VM has been ported for it). As a result, they run on all systems that are equipped with a Java 2 compatible virtual machine (1.3 and higher). This saves development time and costs for migrations and simplifies maintenance and support for the application.


  • Jason Wexbridge, Walter Nyland: NetBeans Platform for Beginners . The Leanpub Bookstore , 2014 ( English )
  • Heiko Böck: NetBeans Platform 7 - The comprehensive manual . Galileo Computing, 2011, ISBN 978-3-8362-1731-6 . ( German )
  • Heiko Böck: NetBeans Platform 6 - Rich Client Development with Java . Galileo Computing, 2007, ISBN 3-8362-1066-5 . ( German )
  • Geertjan Wielenga, Jaroslav Tulach and Tim Boudreau: Rich Client Programming - Plugging into the NetBeans Platform . Prentice Hall, 2007, ISBN 0-13-235480-2 . ( english )
  • Tim Boudreau, Jesse Glick, Simeon M. Greene, Vaughn Spurlin and Jack J. Woehr: NetBeans - The Definitive Guide . O'Reilly Media, 2002, ISBN 0-596-00280-7 . ( english )
  • Patrick Keegan, Ludovic Champenois, Gregory Crawley: NetBeans IDE Field Guide . Prentice Hall PTR, 2006 (second edition), ISBN 0-13-239552-5 . ( english )

A list of books on NetBeans and Java books that use NetBeans can be found on the NetBeans website .

Web links

Commons : NetBeans  - collection of images, videos and audio files

Individual evidence

  1. .
  2. "Dual Licensing NetBeans IDE 6.0 under the CDDL and GPLv2 with Claspath Exception"
  3. Paul Krill: NetBeans to pick up where Sun Java Studio leaves off. December 11, 2007, accessed on October 6, 2019 (English).
  4. NetBeans Incubation Status - Apache Incubator. Retrieved October 6, 2019 .
  5. Apache NetBeans (incubating) 9.0 Released. Retrieved November 1, 2019 .
  6. ^ The Apache Software Foundation Announces Apache NetBeans as a Top-Level Project. Retrieved November 1, 2019 .
  7. Apache NetBeans 11.1 Features. Retrieved October 6, 2019 .
  8. Available NetBeans plugins
  9. ^ Website of the NetBeans Profiler Project
  10. Detailed information about version control in NetBeans
  11. Information on NetBeans Developer Collaboration ( Memento of the original from October 13, 2005 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. (English) @1@ 2Template: Webachiv / IABot /
  12. Information on asynchronous collaboration within NetBeans (English)
  13. NetBeans Plugin Catalog ( Memento of the original from May 11, 2008 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot /
  14. NetBeans Platform Showcase