netbeans is a free, open source frameworks & platforms project written in Java and released under Apache-2.0. It has 3,140 GitHub stars, 933 forks and 1,081 open issues, and was last pushed 12 hours ago. On this registry it ranks #40 of 49 tracked projects in Frameworks & Platforms, with 5 head-to-head comparisons available.

What is netbeans?

Apache NetBeans is an Apache-2.0 open source development environment, tooling platform and application framework written in Java, aimed at developers who write and run Java applications and at teams that build desktop software on top of the NetBeans Platform.

What it is

Apache NetBeans is three things at once: a code editor and integrated development environment, a tooling platform built from separable modules and clusters, and an application framework on which other Java applications are built. It lives in the Java ecosystem under the Apache Software Foundation, with source at apache/netbeans and project pages at netbeans.apache.org. The repository is Java throughout, licensed Apache-2.0, and it carries 3,140 stars, 933 forks and 1,081 open issues.

The concrete problem it solves is Java work done end to end in one environment rather than in an assembly of unrelated tools. A developer editing Java source, building it, profiling it and packaging it does not move between separate programs. Teams building a Java desktop application do not write their own windowing, module-loading, settings and lifecycle code, because the NetBeans Platform supplies that layer. The facts do not name a specific product that NetBeans replaces; what it substitutes for is a stitched-together set of editing, build, profiling and framework tooling for Java.

Key capabilities

  • Builds the default release configuration with ant build, and narrower configurations with ant -Dcluster.config=basic build, ant -Dcluster.config=full build and ant -Dcluster.config=platform build.
  • Lets cluster contents be chosen from cluster.properties, which also offers configurations such as php and enterprise.
  • Produces a portable NetBeans zip in the nbbuild directory, launched by the netbeans launcher in netbeans/bin.
  • Supports a quick test run via ant tryme.
  • Generates javadoc with ant javadoc or the javadoc-nb task, which builds it and opens it in a web browser.
  • Exposes launcher options including --jdkhome, --userdir, --cachedir, --fontsize and -J for passing arguments to the JVM, with --help listing the rest.
  • Enforces licence compliance during the build through Apache Rat and ant verify-libs-and-licenses, governed by nbbuild/rat-exclusions.txt.

Who uses it and how

  • Individual Java developers who open the environment, edit, run and debug code, optionally pointing at a chosen runtime with --jdkhome and isolating settings with --userdir or --cachedir.
  • Teams building a Java desktop application on the NetBeans Platform, using the platform cluster configuration to obtain the framework without the full IDE.
  • Contributors working at module level, who build once and then open individual modules of interest in NetBeans to run, rebuild and debug them like any other project.
  • Release and CI pipelines that build the basic, full or platform configurations separately, with status tracked through GitHub Actions and Apache Jenkins jobs for Linux, Windows and licence checks.
  • Users and contributors who coordinate through the [email protected] and [email protected] mailing lists, and who consume developer builds from the Apache CI job.

Getting started

The documented route is a source build: install Git, Ant and JDK 21 or above, set JAVA_HOME and ANT_HOME, then run ant build for the release configuration. To try it quickly, run ant tryme, or extract the portable zip from nbbuild into a separate directory and run netbeans/bin/netbeans.

How it compares

No list of paid products that this project replaces is provided in the facts, and no similar tools are named either. On the evidence available, Apache NetBeans stands alone in this registry.

When to use it — and when not to

A self-hoster must supply Git, Ant and JDK 21 or above, and must decide which cluster configuration and which module set to build; on JDK 24 or later, javadoc generation can require raising the JAXP entity limit via export ANT_OPTS=-Djdk.xml.totalEntitySizeLimit=200000. Anyone wanting a packaged installer rather than a source build should look at the project's own download options first, because the README is build-centric and documents the toolchain rather than end-user setup. The open issue count of 1,081 is a fair signal that this is a large, continuously moving codebase rather than a small, quiet dependency.

project readme (upstream, from github) — read inline

Apache NetBeans

Apache NetBeans is an open source development environment, tooling platform, and application framework.

Build status

  • GitHub actions
    • Build Status
    • Profiler Lib Native Binaries
    • NetBeans Native Execution Libraries
  • Apache Jenkins:
    • Linux: Build Status
    • Windows: Build Status
  • License Status ( Apache Rat and ant verify-libs-and-licenses )
    • Build Status

Requirements

  • Git
  • Ant
  • JDK 21 or above (to build and run NetBeans)
Notes:
  • NetBeans license violation checks are managed via the rat-exclusions.txt file.
  • Set JAVA_HOME and ANT_HOME appropriately or leave them undefined.

Building NetBeans

Build the default release config (See the cluster.config property.)

$ ant build

Build the basic project (mainly Java features):

$ ant -Dcluster.config=basic build

Build the full project (may include clusters which are not be in the release):

$ ant -Dcluster.config=full build

Build the NetBeans Platform:

$ ant -Dcluster.config=platform build

Cleanup:

$ git clean -Xdf
Notes:
  • You can also use php, enterprise, etc. See the cluster.properties file.
  • Once built, you can simply open individual modules of interest with NetBeans and run/rebuild/debug them like any other project
  • The nbbuild directory should contain the portable NetBeans zip
Generating Javadoc

Build javadoc:

$ ant javadoc
Notes:
  • On JDK 24 or later, building javadoc may require to raise the jaxp entity limit by setting export ANT_OPTS=-Djdk.xml.totalEntitySizeLimit=200000
  • Run javadoc-nb task in Netbeans to run the javadoc build and display it in a web browser.

Running NetBeans

Quick test run:

$ ant tryme

or run the portable zip distribution:

  1. extract the zip found in nbbuild to a directory other than nbbuild
  2. run the netbeans launcher found in netbeans/bin, optionally specifying a custom userdir

example:

$ netbeans --userdir /tmp/nbtestdir1

Some useful Launcher Options

  --jdkhome <path>      path to JDK used as runtime (and default JDK for projects)
  --userdir <path>      use specified directory to store user settings
  --cachedir <path>     use specified directory to store user cache, must be different from userdir
  --fontsize <size>     set the base font size of the user interface, in points
  -J<jvm_option>        pass <jvm_option> to JVM
  --help                list more options

Get In Touch

Download

Reporting Bugs

Log, Config and Cache Locations

  • start config (JVM settings, default JDK, userdir, cachedir location and more):
    netbeans/etc/netbeans.conf
  • user settings storage (preferences, installed plugins, logs):
    system dependent, see Help -> About for concrete location
  • cache files (maven index, search index etc):
    system dependent, see Help -> About for concrete location
  • default log location (tip: can be inspected via View -> IDE Log):
    $DEFAULT_USERDIR_ROOT/var/log/messages.log

Note: removing/changing the user settings directory will reset NetBeans to first launch defaults

Other Repositories

Full History

The origins of the code in this repository are older than its Apache existence. As such significant part of the history (before the code was donated to Apache) is kept in an independent repository. To fully understand the code you may want to merge the modern and ancient versions together:

$ git clone https://github.com/apache/netbeans.git
$ cd netbeans
$ git log platform/uihandler/arch.xml

This gives you just few log entries including the initial checkin and change of the file headers to Apache. But then the magic comes:

$ git remote add archive https://github.com/codelerity/netbeans-releases.git
$ git fetch archive # this takes a while, the history is huge!
$ git replace 6daa72c98 32042637 # the 1st donation
$ git replace 6035076ee 32042637 # the 2nd donation

When you search the log, or use the blame tool, the full history is available:

$ git log platform/uihandler/arch.xml
$ git blame platform/uihandler/arch.xml

You can browse the archived repo here.

Many thanks to Emilian Bold who created the original archive repository.

Frequently asked questions

Is netbeans free to use?

netbeans is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does netbeans do?

Apache NetBeans

What is netbeans written in?

netbeans is primarily written in Java. Its source is publicly available at https://github.com/apache/netbeans, and it has 3,140 GitHub stars.