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.
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
