NetBeans is an integrated development environment for Java. NetBeans allows applications to be developed from a set of modular software components called modules. NetBeans is free and open source, it runs on Windows, macOS, Linux and Solaris.

Features

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

Gradle

  • Return the highest quality from all the loaders. by @sdedic in #6371
  • Workaround: Avoid reporting BOMs among dependencies to prevent dependency graphs explosion by @sdedic in #6435
  • Update Gradle Tooling API to 8.4 by @lkishalmi in #6553
  • Do not ask for proxies on each project. by @sdedic in #6558
  • #6536, #6537: avoid stack overflow, catch missing artifacts to be downloaded. by @sdedic in #6548
  • Removed a few defunct Gradle Settings by @lkishalmi in #6516
  • Fix Gradle version change in wrapper.properties by @lkishalmi in #6589
  • Try to close Gradle Daemons on exit. by @lkishalmi in #6598
  • Be more friendly on 'runSingle' when 'run' task is missing. by @lkishalmi in #6618
  • Fix LSP/Micronaut tests + don't ignore exception in gradle spi by @mbien in #6673

Maven

  • Maven Embedder resolve() fix by @sdedic in #6344
  • Micronaut's lifecycle participant changed FQN in Micronaut 4.x by @sdedic in #6386
  • Prevent NPE inside enable preview for Maven when pom.xml contains the… by @lahodaj in #6446
  • NB module project wizard should not use snapshot versions. by @mbien in #6483
  • UpdateDependencyHint should work on plugins with default maven group id by @mbien in #6493
  • Update to maven-indexer 7.0.4 and lucene 9.8.0. by @mbien in #6506
  • Upgrading the JDOM library in maven.embedder from version 1.0 to 2.0.6.1 by @lahodaj in #6478
  • Build with dependencies before main action by @sdedic in #6520
  • Update bundled maven to 3.9.5. by @mbien in #6533
  • #6525: maven execution should setup LegacySupport before running Maven by @sdedic in #6552
  • Priming build and reload improvements. by @sdedic in #6514
  • Enable JUnit output processing for failsafe:integration-test by @neilcsmith-net in #6654
  • Revert "Priming build and reload improvements." by @mbien in #6623
  • Bump hardcoded maven compiler and resource plugin version defaults. by @mbien in #6681

Ant

  • Fixes "error starting modern compiler" issue on JDK 21. by @mbien in #6436

Java

  • Upgrading to JDK 21 nb-javac by @lahodaj in #6206
  • Code completion modified to support JDK 21 features. by @dbalek in #6253
  • Supporting source file launcher in VS Code extension by @lahodaj in #6262
  • Do not mark test methods as unused. by @dbalek in #6277
  • Add nb-javac libwrapper tests. by @mbien in #6308
  • Fix: Java completion parameter tooltip is not shown if previous parameter is TypeVariable by @matthiasblaesing in #6268
  • Handle errors in annotation processor initialization by @dbalek in #6422
  • Update nb-javac to jdk-21u. by @dbalek in #6425
  • The ClassLoader used to load annotation processors does not return directories from getResource/getResources methods, while normal ClassLoaders do - fixing. by @lahodaj in #6466
  • LPS: SignatureHelp implemented. by @dbalek in #6476
  • Disaplay parameter tooltips for annotations. by @dbalek in #6487
  • Micronaut: Add missing path variable parameter fix. by @dbalek in #6498
  • Bump gson from 2.8.5 to 2.8.9 in /nbbuild/misc/prepare-bundles by @dependabot in #4137
  • Bump gson from 2.8.5 to 2.8.9 in /webcommon/typescript.editor/bundles/prepare by @dependabot in #4138
  • Add support for String Templates. by @lahodaj in #6415
  • CI: Enable java.editor.base tests. by @mbien in #6543
  • Update JavaFX wizard names and move DukeScript wizard to a better position. by @mbien in #6551
  • Remove TreeShims mechanism. by @mbien in #6495
  • upgrade codesnippet-doclet by @ebarboni in #6565
  • Improve inline-hints settings, add keybinding, disable by default. by @mbien in #6561
  • Compute JavaDoc URLs lazily by @mbien in #6213
  • JDK Downloader: fix current GA/EA values by @mbien in #6590
  • Fix unnamed main method detection by @mbien in #6593
  • Formatting options UI: fix naming panel layout by @mbien in #6619
  • [NETBEANS-6599] Do not throw a CompletionFailure for empty java.lang package outside of java.base. by @lahodaj in #6629
  • Assignments to parameters to record compact constructors should not be marked as unused. by @lahodaj in #6635
  • [NETBEANS-6638]: Avoid adding a space after opening curly brace. by @lahodaj in #6641
  • [NETBEANS-5659] Collection.forEach is always a read from the collection. by @lahodaj in #6646
  • Limit msg length in test window by default. by @mbien in #6688
  • Fix ConcurrentModificationException in TestMethodController by @lkishalmi in #6689
  • Fix formatting of try/catch as first statement in switch case (GH5323). by @neilcsmith-net in #6678

PHP

  • PHP: Improved validation when creating a line breakpoint by @troizet in #6241
  • Fixed gap between checkboxes in php project testing settings by @troizet in #6381
  • Prevent getting an incorrect type if a return type is static with PHPDoc tag(@return) #6247 by @junichi11 in #6251
  • Prevent NPE when IntroduceSuggestionHint generates code by @junichi11 in #6269
  • Fix the problem that typed fields marked as deprecated are not displayed as deprecated #6310 by @junichi11 in #6321
  • Keep existing order of use type kinds(types, functions, constants) if possible #6274 by @junichi11 in #6322
  • Fix code completion for fields with single line var doc #6359 by @junichi11 in #6364
  • PHP: Added support for exception breakpoints. by @troizet in #6366
  • PHP: In the navigator, inherited members are displayed in a different color, similar to how it is done in java by @troizet in #6393
  • Fix wrong IncorectNamedArgumentHintError #6432 by @junichi11 in #6437
  • Add "After Use Trait" to the formatting options #4685 by @junichi11 in #6467
  • PHP: Fixed element positioning in code completion settings for php by @troizet in #6512
  • PHP: Fix autocomplete for exception class when adding exception breakpoint. by @troizet in #6643

C/C++

  • Stabilize CPPLite: Discard STDERR by @matthiasblaesing in #6305

Enterprise

  • Feature: Added all enterprise modules with non failing unit tests by @asbachb in #6244
  • Start running enterprise tests on JDK 11 by @mbien in #6296
  • use 'parameters' to find out if createProcedureInfo() was already invoked by @thurka in #6298
  • LSP: Micronaut symbols position fixed. by @dbalek in #6352
  • LSP: Micronaut endpoints finder fixes. by @dbalek in #6380
  • Micronaut: Avoid using jakarta.persistence when generating entity classes by @dbalek in #6409
  • Micronaut 4 build plugin recognized. by @sdedic in #6424
  • Open the Payara Server's home and domain directory in Explorer by @jGauravGupta in #6347
  • Fixed increasing number of steps by @thurka in #6420
  • Quickpick title for database fixed by @thurka in #6413
  • JakartaEE: Fix more cases where jakarta namespace has to be supported by @matthiasblaesing in #6473
  • Display Faces VERSION instead of JSF VERSION by @asbachb in #6564
  • Add support for GlassFish 7.0.7, 7.0.8, and 7.0.9 by @pepness in #6542
  • Do not create repository and entity classes from template by @thurka in #6529

Web

  • JS: Fix handling of classes declared in anonymous functions by @matthiasblaesing in #6249
  • Improvement of CSS support in NetBeans (@layer, @supports, containment module, text module, math functions, less optional imports) by @matthiasblaesing in #6451

Versioning

  • Update jgit from 5.7.0 to 6.7.0. by @matthiasblaesing in #6544
  • Read initial git branch name from user config. by @mbien in #6528
  • Git: enable "replace invalid branch characters" by default by @mbien in #6555
  • Fix Git show history regression. by @mbien in #6594
  • Fix CherryPickCommand ArrayIndexOutOfBoundsException (GH6668) by @neilcsmith-net in #6672
  • Add missing git create-branch and switch-branch toolbar icons. by @mbien in #6696

Editor

  • Fix: Enable to add docker instance via socket on mac with apple silicon by @lazydan in #6328
  • Checkbox support on Markdown preview by @moacirrf in #6401
  • Drop horizontal scroll mouse button events on Linux by @neilcsmith-net in #6644

UI Changes

  • Enable validation and code completion for XML documents without schemaLocation by @matthiasblaesing in #6245
  • Update FlatLaf from 3.1 to 3.2 by @eirikbakke in #6362
  • Copy FlatLAF label positioning improvements into the Windows LAF by @eirikbakke in #5338
  • Remove little black line from new-project wizard. by @mbien in #6349
  • Remove obsolete UseQuartz JVM flag. by @mbien in #6474
  • Update FlatLaf from 3.2 to 3.2.1 by @DevCharly in #6411
  • Retry fetching clipboard contents when it initially fails by @matthiasblaesing in #6443
  • Use extended mouse buttons for back / forward actions (GH5728) by @neilcsmith-net in #6434
  • FlatLaf: Enable Window decoration option for Linux by @demitriusbelai in #6391
  • Improve cluster activation UX by @mbien in #6355
  • Layout fixes for the project problems warning dialog. by @mbien in #6575
  • Update FlatLaf from 3.2.1 to 3.2.5 by @DevCharly in #6605

Platform

  • Use Deque/ArrayDeque instead of Stack in RequestProcessor class by @pepness in #6267
  • Remove obsolete sun.zip.disableMemoryMapping JVM flag. by @mbien in #6315
  • [NETBEANS-4997] use edge chromium syntax for opening URLs in Edge by @sworisbreathing in #3215
  • Autoupdate system must check org.openide.modules.arch as org.openide.modules.os is already handled by @matthiasblaesing in #6477
  • Use ConcurrentMap/ConcurrentHashMap.newKeySet instead of Map/Collections.synchronizedSet by @pepness in #6309
  • Update platform default splash to remove NB10 reference by @neilcsmith-net in #6562
  • Don't scroll output window on link click. by @mbien in #6679

Language Server Protocol

  • Vscode ts listener can subscribe for NLS node event changes. by @sdedic in #6186
  • LSP: Open sources from Jar files as read-only from their true locations. by @dbalek in #6286
  • redundant check for supported 'command' removed by @thurka in #6285
  • Allow to select 'Add Database Connection' or 'Add Oracle Autonomous DB' from database view toolbar by @thurka in #6281
  • LSP: cleanup of CodeActionsProvider.getCommands() by @thurka in #6345
  • LSP: Command to get document symbols added. by @dbalek in #6331
  • LSP: Scan for projects on server init. by @dbalek in #6370
  • LSP: Fix broken source for workspace symbol resolution. by @dbalek in #6374
  • Fix P + BR tag handling, LI is replaced by "* " by @sdedic in #6375
  • #6377: workaround vscode jar/nbjrt URI mangle by @sdedic in #6378
  • LSP: Prevent errors written to log on workspace symbol open. by @dbalek in #6390
  • Pass DB connection details using file instead of env. variables by @thurka in #6353
  • Fix NBLS 3rd party licenses by @thurka in #6417
  • LSP: Fixed problem with workspace/symbols called before first JavacCompiler created. by @dbalek in #6419
  • LSP: Modified to prevent NPEs. by @dbalek in #6444
  • update npm module debug (moderate severity vulnerability) by @thurka in #6518
  • Adding action/command for adding DB connection properties to the OCI Vault by @jhorvath in #6574
  • use clusters.config.release.list instead of clusters.config.full.list by @thurka in #6583
  • Prefixing all code names of commands with 'nbls'. by @lahodaj in #6218

VSCode Extension

  • Use ex.printStackTrace(StringWriter) to avoid no message NPE by @jtulach in #6189
  • Schema name has to be in uppercase for Oracle ADB by @jhorvath in #6288
  • update npm module semver (moderate severity vulnerability) by @thurka in #6319
  • Changelog.md document what changed compared to 19.0.0 by @MartinBalin in #6431
  • Avoid double quoting extra path by @sdedic in #6464

Maintanance

  • Switch CI from JDK 21-ea to 21-ga. by @mbien in #6469
  • Move GraalVM job to JDK 11. by @mbien in #6369
  • Small code cleanup in extbrowser module. by @mbien in #6482
  • Rearrange commit validation job. by @mbien in #6479
  • Native Execution Binaries workflow and changes for macOS Arm. by @neilcsmith-net in #6513
  • Update bouncycastle to jdk18on-1.76. by @mbien in #6517
  • Upgrading Apache Ant, Commons Compress, Commons IO and Maven, FlexMark and Guava by @lahodaj in #6480
  • AnnotationProcessors shouldn't set the SourceVersion unless required by @mbien in #5843
  • Limit auto-import to recent versions by @neilcsmith-net in #6559

Other Changes

  • rust.project test data licenses by @vieiro in #6243
  • Rust: More precise parser error markings in the Editor by @lkishalmi in #6261
  • RustLanguageLexer: do not throw exceptions. by @vieiro in #6414
  • HCL Expression AST by @lkishalmi in #6178
  • Added arch arm64 to profiler library by @sroeper in #6494
  • Native binaries workflows: Include LICENSE and NOTICE in binaries by @matthiasblaesing in #6539
  • Update profiler native binaries to released 1-24aefa9 by @neilcsmith-net in #6502
  • Add native execution binaries for macOS arm64 (1-24aefa9) by @neilcsmith-net in #6521