Software 44662 Published by

Apache NetBeans 31 has landed, delivering long-requested lambda breakpoints to the debugger and jumping JGit to version 7.6.0 for a massive improvement in repository indexer performance. The new build tracks the JDK 27 early access release with JEP 519 enabled, while also fixing a critical JavaFX crash on JDK 26 that previously forced desktop developers to downgrade. Beyond core Java, the release adds full PHP 8.4 property hooks, allows Payara to run on JDK 25, and introduces a global settings.xml preference for cleaner Maven management. Although the GitHub label currently reads pre-release, the build is stable for production, and the project has seen renewed momentum with five new contributors and sixty-nine merged pull requests.



Apache NetBeans 31 Released: Lambda Debugging, JGit Performance, and JDK 27 Tracking Land Today

The latest release brings requested lambda breakpoints, a massive JGit version leap, and early access support for the next JDK, signaling a continued push past the IDE's earlier stagnation.

Apache NetBeans 31 is live now on GitHub, and if you've been waiting for lambda breakpoints to actually work, this is your moment. The release drops a new nb-javac build, lands a JGit version jump from 7.2.0 to 7.6.0, and tracks the JDK 27 early access release. It also adds full PHP 8.4 support and fixes a JavaFX crash on JDK 26.

Gnome_shell_screenshot_5t19r1

Lambda breakpoints finally land

The debugger can now catch breakpoints inside lambda expressions. No more wrapping one-liners in named methods just to step through a single line. The new nb-javac build wires the debugger to handle the bytecode correctly, which means you can pause execution right inside those pesky event handlers. Race conditions in event handlers just got easier to track.

The embedded compiler now tracks the JDK 27 early access build, keeping the code completion engine ahead of language changes instead of playing catch-up after every JDK release. If you've watched a debugger silently skip over a lambda because it didn't recognize the bytecode, you'll appreciate the fix immediately.

JGit jump and tooling updates

JGit climbed from 7.2.0 straight to 7.6.0. That's a four-version leap in a single release, and it includes a massive rewrite of the repository indexer for large codebases. The Git tab will load faster than it ever has before.

Maven is up to 3.9.16, Gradle sits at 9.6.1, and Ant remains at 1.10.17, which is exactly what it should be doing. Nobody needs Ant to evolve right now. The launch script now honors JAVA_HOME on macOS, and quoted arguments in Unix shells finally work. That's a long-standing pain point for terminal-driven users finally cleared up.

PHP 8.4 and Jakarta EE realignments

PHP 8.4 finally gets proper property hooks support. The module has lagged behind the Java side for a while, but this update proves the team is still developing the interpreter. Fluent setter return types now parse correctly, and variadic marked variables in PHPDoc align with the spec.

On the enterprise side, Payara Server now runs on JDK 25 without manual module path tweaks. GlassFish detection no longer chokes on newer install layouts. The new global settings.xml preference is a welcome addition if you're managing identical Maven config files across a dozen microservices.

Tracking JDK 27 and what it means for the next eighteen months

The nb-javac upgrade tracks the JDK 27 early access build, and JEP 519 Compact Object Headers are enabled in the platform. CI now tests against JDK 27-ea, keeping the release cadence ahead of the official Java timeline. JavaFX gets a critical crash fix for JDK 26, which removes the need to downgrade just to run your GUI.

Five new contributors joined the commit count this cycle, pushing the total pull requests to sixty-nine. The project is moving past the stagnation phase that plagued the mid-2020s. FlatLaf climbed to 3.7.2 for a tighter look, and the launch script honors JAVA_HOME on macOS.

Head here for the GitHub release page