Apache NetBeans is free and open source and is governed by the Apache Software Foundation.

Fast & Smart Editing

Apache NetBeans is much more than a text editor. It highlights source code syntactically and semantically, lets you easily refactor code, with a range of handy and powerful tools.

Java, JavaScript, PHP, HTML5, CSS, and More

Apache NetBeans provides editors, wizards, and templates to help you create applications in Java, PHP and many other languages.

Cross Platform

Apache NetBeans can be installed on all operating systems that support Java, i.e, Windows, Linux, Mac OSX and BSD. Write Once, Run Anywhere, applies to NetBeans too.

What's New:


Java Language

  • New JDK 14 and 15-Specific Java Language Features
  • Code coloring. Keywords "sealed", "non-sealed", and "permits" are highlighted conforming to the existing styles of all other Java keywords.
  • Code formatting for "sealed" type. Extended the Java code formatting feature to include "sealed" and "permits" clauses for the first time.
  • Auto-completion for "sealed" type. Added keyword "sealed" and "non-sealed" before "class" declaration. Added "permits" only in the allowed location, i.e., the "permits" clause is not allowed to be put before "extends" and "implements" clause, if present.
  • Fixed Record Formatting issue with use of annotation: https://github.com/apache/netbeans/pull/2391
  • Fixed issue: refactor record rename & move record file to other package: https://github.com/apache/netbeans/pull/2310
  • Invoke code completion for "Record" variable name and the editor will analyze the context and then suggest choices that are reachable from the current caret position.
  • Fixed JavaDoc listing for class-type RECORD on auto completion: https://github.com/apache/netbeans/pull/2412
  • nb-javac fork supports JDK 15: https://github.com/apache/netbeans/pull/2408
  • New Miscellaneous Java Language Features
  • Show types for chained method invocations: https://github.com/apache/netbeans/pull/2365
  • Create new Class/Interface/Enum when copy-paste raw text: https://github.com/apache/netbeans/pull/2334
  • Create only one instance of javac: https://github.com/apache/netbeans/pull/2305


  • Avoid assertion & NPE in fxml code completion: https://github.com/apache/netbeans/pull/2399
  • Disallow FXML controller in default package: https://github.com/apache/netbeans/pull/2331
  • Include immutable objects for fxml editor identification: https://github.com/apache/netbeans/pull/2333

Java Web

  • Remove Derby integration from Payara Server modules: https://github.com/apache/netbeans/pull/2425
  • Web Project Properties Dialog fails to save Relative URL: https://github.com/apache/netbeans/pull/2423
  • JavaServer Faces Catalog fixes: https://github.com/apache/netbeans/pull/2431
  • Fix Spring Web MVC 5.2.9 integration: https://github.com/apache/netbeans/pull/2380

Java Build Systems

  • Added Gradle wrapper distribution change detection: https://github.com/apache/netbeans/pull/2366
  • Add JAVA_HOME to Gradle build environment variables: https://github.com/apache/netbeans/pull/2320
  • Better way to detect sources and javadocs in Gradle Projects: https://github.com/apache/netbeans/pull/2499
  • Fixed Gradle Java Frontend Application generation: https://github.com/apache/netbeans/pull/2485
  • Enable run/debug single when the suitable task is provided by the Gradle project: https://github.com/apache/netbeans/pull/2458
  • Flush Gradle Standard output in 200ms if it stalled: https://github.com/apache/netbeans/pull/2270
  • Handle source type correctly in GradleSourcesImpl: https://github.com/apache/netbeans/pull/2339
  • Fix missing artifact nodes in Gradle Project Configurations: https://github.com/apache/netbeans/pull/2490
  • Fixing Lombok in Gradle Projects: https://github.com/apache/netbeans/pull/2392
  • Arrange Gradle Source info detail tabs to the right: https://github.com/apache/netbeans/pull/2361
  • maven project open use no-lock getModuleName: https://github.com/apache/netbeans/pull/2340

PHP & JavaScript

  • PHP 8.0 support: https://github.com/apache/netbeans/pull/2457
  • PHP 8.0 Support: Allow ::class on objects part: https://github.com/apache/netbeans/pull/2295
  • PHP 8.0 Support: Allow trailing comma in parameter list: https://github.com/apache/netbeans/pull/2269
  • PHP 8.0 Support: Non-capturing catches part: https://github.com/apache/netbeans/pull/2265
  • PHP 8.0 Support: throw Expression part: https://github.com/apache/netbeans/pull/2280
  • PHP 8.0 Support: Match expression v2: https://github.com/apache/netbeans/pull/2303
  • PHP 8.0 Support: Static return type: https://github.com/apache/netbeans/pull/2335
  • Dependencies and infrastructure of JavaScript and HTML features cleaned up: https://github.com/apache/netbeans/pull/2424
  • html parser dont wait for projects open: https://github.com/apache/netbeans/pull/2341
  • Removed obsolete Oracle JET support: https://github.com/apache/netbeans/pull/2367
  • CSS3 enhancements: https://github.com/apache/netbeans/pull/2299
  • Add Plugin for BootsFaces in order to support <b:dataTable: https://github.com/apache/netbeans/pull/2357
  • Fix broken npm search: https://github.com/apache/netbeans/pull/2286
  • Note: We haven't finished implementing PHP 8.0 support yet. It means that some new syntaxes are not supported yet(e.g. Attribute, named parameter,...).

Library Upgrades

  • Ant to 1.10.8: https://github.com/apache/netbeans/pull/2315
  • exec-maven-plugin from 1.5.0 to 3.0.0: https://github.com/apache/netbeans/pull/2288
  • Gradle Tooling API to 6.7: https://github.com/apache/netbeans/pull/2479
  • JDBC PostgreSQL from 42.2.10 to 42.2.16: https://github.com/apache/netbeans/pull/2284
  • payara-micro-maven-plugin to v1.3.0: https://github.com/apache/netbeans/pull/2454
  • Spring Framework to version 4.3.29: https://github.com/apache/netbeans/pull/2374
  • Spring Framework to version 5.2.9: https://github.com/apache/netbeans/pull/2373
  • TestNG and upgrade from 6.8.1 to 6.14.3: https://github.com/apache/netbeans/pull/2350


  • Detect JDK-s installed with SDKMan and Debian: https://github.com/apache/netbeans/pull/2329
  • Check unpack200 and warn the user on JDK14+: https://github.com/apache/netbeans/pull/2317
  • Update to the mac os installer as it was failing on Big Sur: https://github.com/apache/netbeans/pull/2353
  • Avoiding use of Nashorn (removed in JDK 15) in J2SE multi-module: https://github.com/apache/netbeans/pull/2322