- Apache NetBeans 30 mandates JDK 21, enabling stronger support for modern Java features and more reliable tooling.
- The release updates Maven, Ant and Gradle, and enhances integration with GlassFish, Payara and enterprise Java workflows.
- Web, PHP and polyglot development benefit from improved LSP, TypeScript React support, PHP 8.5 pipe operator handling and rust-analyzer integration.
- UI refinements, faster Git via JGit 7.6.0 and better Markdown/TOML support create a smoother experience for large, multi-language projects.
Apache NetBeans 30 arrives as a major turning point for the IDE, not just another maintenance update that you install and forget about. With this release, the project raises the technical floor to a modern Java baseline, cleans up long-standing rough edges in daily development workflows, and doubles down on language server integration and visual polish so the whole experience feels more fluid and predictable.
The most visible change is that JDK 21 is now the mandatory foundation to build, test and run Apache NetBeans 30, which clearly signals that the IDE is firmly aligned with current Java language evolution instead of holding onto legacy constraints. On top of that, the new version refreshes its embedded build tools (Maven, Ant and Gradle), tightens integration with enterprise Java servers like GlassFish and Payara, brings better support for web stacks such as TypeScript React and modern PHP, and includes a series of usability and performance tweaks that developers will notice from the very first project they open.
JDK 21 as the minimum requirement: a deliberate leap to modern Java

Apache NetBeans 30 officially requires JDK 21 as the minimum Java version for compiling, testing and launching the IDE itself, leaving behind older JDK lines that were holding back the adoption of recent language features. This move allows the NetBeans platform and its modules to lean on the APIs, performance characteristics and memory model improvements that come with the long-term support branch of Java 21.
For developers, this new baseline unlocks native support for the latest Java language constructs, including records, unnamed variables and modern patterns used in local classes and switch expressions. By tying the IDE runtime to JDK 21, the team can more reliably implement static analysis, refactorings and code completion without constantly juggling compatibility workarounds for outdated Java versions.
The requirement for JDK 21 is not just a theoretical statement on paper—it changes how you set up your environment in practice. To run Apache NetBeans 30, your system must have an appropriate JDK 21 distribution installed and configured as the default Java, whether you are on Linux, Windows or other supported platforms. Older setups that still rely on JDK 20 or earlier will need to be upgraded before you can fully take advantage of the new IDE.
This decision also aligns NetBeans with the broader ecosystem trend, where frameworks, libraries and servers are increasingly standardizing around modern LTS JDKs. Instead of supporting a wide range of obsolete JVMs, the IDE focuses its optimization and testing efforts on a single robust target, which generally leads to fewer subtle runtime bugs and better long-term maintainability. broader ecosystem trend
The impact of this shift is especially visible in build and deployment workflows, as projects that are already running against JDK 21 can be edited, compiled and profiled with fewer inconsistencies between the IDE and the production environment. For teams standardizing on Java 21, NetBeans 30 becomes a more natural fit, both for development machines and for continuous integration systems.
Smarter Java editing: records, unnamed variables and local classes
One of the standout areas of Apache NetBeans 30 is the refinement of the Java editor, where code completion, prediction and syntax analysis receive noticeable upgrades that are particularly tailored to newer language constructs. The goal is to reduce friction when writing modern Java code and to minimize the number of times you have to fight with the IDE to get the right suggestion or formatting.
Support for records has been significantly improved, so the IDE handles record components, generated methods and related patterns more consistently during editing. Developers will see more accurate autocompletion of record fields, better navigation between definitions and usages, and fewer glitches when refactoring record-based data models across a large codebase.
Unnamed variables also benefit from dedicated fixes and stability improvements. Earlier iterations of support for this syntax could lead to annoying formatting conflicts or unexpected behavior in code inspections. In NetBeans 30, the formatter and parser have been tuned to recognize these constructs correctly, reducing noisy warnings and letting you write concise code without cosmetic breakage.
Local classes, which sometimes used to confuse older completion engines, now integrate more smoothly into suggestions and type inference. When instantiating local classes or navigating between their declarations and call sites, the IDE delivers more precise hints and a cleaner experience, which is especially welcome in complex methods or test setups where local helper types are common.
On top of that, NetBeans 30 improves the automatic import of enums within switch statements. In previous versions, you might have had to manually adjust imports or see the IDE mis-handle enum references in certain contexts. The new release tightens this behavior, detecting when an enum should be imported and handling those cases with less manual intervention, which speeds up everyday coding.
Stability fixes and profiler reliability
The development team has also focused on resolving crashes and internal inconsistencies that could disrupt work during intensive debugging or profiling sessions. NetBeans 30 incorporates a collection of critical bug fixes that target null pointer exceptions and other runtime errors that previously occurred in the profiler and related tools.
Multiple null pointer exceptions that were blocking the profiler have been addressed, meaning you can now attach, inspect and analyze running applications with a lower risk of the IDE suddenly failing. For developers who rely heavily on performance tuning and memory analysis, this alone can dramatically improve the day-to-day experience.
Formatting conflicts related to unnamed variables and other new syntax forms have also been ironed out, which helps the editor maintain consistent style across an entire project. By stabilizing these corner cases, the NetBeans team reduces the friction between automated formatting rules and the realities of modern Java, so teams can keep using shared code style configurations without constant manual corrections.
The cumulative effect of these fixes is a more predictable and reliable environment, particularly under heavy load, such as when profiling large enterprise applications or switching rapidly between multiple projects and sessions. Instead of spending time recovering from IDE errors, developers can stay focused on application logic and optimization.
Combined with the JDK 21 requirement, these stability improvements make the IDE feel more coherent, because many of the tools and subsystems are now designed with a single, modern runtime in mind. The result is fewer subtle incompatibilities between language features, profiling hooks and editor behavior.
Updated build tooling: Maven, Ant and Gradle ready for the future
Apache NetBeans 30 refreshes its integration with the most widely used Java build systems, so projects built with modern pipelines can be opened and managed without installing extra plugins or performing manual upgrades. This is particularly important in enterprise environments where teams juggle multiple build tools within the same organization.
The IDE now incorporates Maven 3.9.15 natively, giving users access to a recent and robust Maven release directly from NetBeans. This update ensures better compatibility with the latest plugins, dependency resolution strategies and repository configurations, which is critical for large multi-module projects and corporate artifact repositories.
Ant support has also been modernized with the inclusion of Ant 1.10.17. While Ant might not be the newest tool on the block, many legacy and infrastructure projects still rely on it, and having an up-to-date embedded version helps keep build scripts running smoothly without forcing teams to maintain assorted external installations.
Gradle integration has been adjusted so that its default parameters are already tuned for upcoming JDK 26 environments. Even though JDK 26 is not yet the standard runtime, this forward-looking configuration prepares NetBeans users for the next wave of Java platform updates. As Gradle-based projects adopt newer JDKs, the IDE will be better positioned to handle them with fewer last-minute adjustments.
In combination, these build tool updates make NetBeans 30 a more attractive option for organizations that maintain a mix of modern microservices, legacy modules and shared libraries. Whether your pipeline is driven primarily by Maven, Ant or Gradle, the IDE can plug into it with fewer version mismatches and less manual configuration.
Enterprise Java and server-side modernization
Enterprise development is a key focus area in this release, and Apache NetBeans 30 includes concrete improvements to keep server-side Java workflows up to date. In particular, the IDE broadens its native support for Jakarta EE-centric application servers and sharpens its integration with the associated deployment and debugging processes.
The new version introduces official support for GlassFish 7.1.0 and GlassFish 8.0.0, enabling developers to create, deploy and manage Jakarta EE applications against these server versions directly from the IDE. This includes configuration handling, deployment actions and log inspection, all aligned with the current GlassFish ecosystem.
Annoying startup errors in Payara Server related to checkpoint options have been fixed. Previously, certain configurations could trigger failures during server startup, forcing developers to troubleshoot server-side options instead of focusing on application code. With these corrections, Payara integration should feel more stable and less prone to obscure runtime issues.
By tightening support for these servers, NetBeans 30 strengthens its positioning in corporate Java environments, where Jakarta EE, microservices and large transactional systems are common. The ability to control GlassFish and Payara instances seamlessly from within the IDE shortens the feedback loop between code changes, deployment and runtime verification.
For teams that rely on NetBeans as an all-in-one enterprise development station, these enhancements mean fewer manual steps, fewer server restarts caused by IDE-side misconfigurations, and a smoother path to adopting newer server releases when projects migrate to updated Jakarta EE specifications.
Language Server Protocol and web development enhancements
NetBeans 30 gives special attention to web and frontend stacks by upgrading its Language Server Protocol (LSP) client, which is the bridge that connects the IDE to modern language servers for JavaScript, TypeScript and other languages. This results in a more responsive and feature-rich experience when working on hybrid applications that mix Java backends with rich client-side code.
The LSP client now offers native support for TypeScript React, making it easier to develop React-based frontends without abandoning NetBeans. With this support, features like autocompletion, diagnostics and navigation in TSX files become more accurate and aligned with common React development practices.
Spacing conflicts in JavaScript classes that use static initializers have been resolved, which is a welcome detail for developers who care about clean formatting and consistent style. These fixes help the editor better understand the structure of modern JavaScript and avoid mangling spacing in complex class declarations.
The PHP ecosystem inside NetBeans has not been left behind either. The IDE now supports the new pipe operator introduced in PHP 8.5, allowing PHP developers to experiment with updated language features without seeing parsing errors or missing highlighting. This ensures that backend teams using modern PHP versions can stay within the NetBeans environment without hitting syntax limitations.
Altogether, these LSP and language updates position NetBeans 30 as a more competent choice for full-stack developers who split their time between Java microservices, TypeScript React frontends and contemporary PHP APIs. Instead of juggling multiple specialized tools, more of the workflow can be centralized in one IDE.
User interface refinements and visual comfort
Visual polish and interface fluidity are another strong theme in Apache NetBeans 30. The team has worked on both the overall look of the IDE and the way it behaves during intensive operations such as startup and project loading, aiming for a smoother day-to-day feeling.
The rendering engine has been updated to FlatLaf 3.7.1, which gives the IDE a cleaner, more consistent visual appearance across platforms. This update improves the way controls, dialogs and editor components are drawn on screen, contributing to a more modern and less cluttered interface that remains comfortable during long coding sessions.
The initial splash screen loading has been moved to the event dispatch thread in order to avoid certain system freezes and perceived hangs while NetBeans starts up. With this change, the startup phase is less likely to cause temporary lockups or unresponsive moments, making the launch experience feel snappier and more reliable.
These UI improvements are not purely cosmetic. A stable, visually coherent IDE reduces cognitive load, especially for developers who spend many hours a day inside the same interface. Responding windows, smoother transitions and a cleaner theme all help maintain focus on the code instead of on distractions caused by the tool itself.
When combined with the editor, profiler and Git enhancements, the refined interface makes the whole environment feel more like a single cohesive tool rather than a bundle of loosely connected modules, which can be important for onboarding new team members and standardizing on a shared IDE across an organization.
Git performance and large repository handling
Version control workflows get a solid performance boost in Apache NetBeans 30, particularly for teams working with large repositories and heavily populated histories. These changes focus on reducing waiting time in common Git operations and making the user interface more responsive when scanning project state.
The internal Git engine has been updated to JGit 7.6.0, a modern release of the Java-based implementation of Git. This upgrade brings improvements in protocol handling, performance and stability, which NetBeans leverages to provide faster status checks and smoother interactions with remote repositories.
One key optimization is that the IDE now processes file status information in batches when displaying commit dialogs and performing status updates. Instead of querying every file individually in a resource-intensive way, NetBeans defers heavy calls and groups them, reducing the load on both the IDE and the underlying file system.
As a result, the speed of loading file states in confirmation windows and other Git dialogs is markedly better, especially for monorepos and large enterprise projects where thousands of files may change between branches. Developers spend less time watching progress indicators and more time making actual decisions about their commits.
This attention to Git performance makes NetBeans 30 more practical for modern collaborative workflows, where frequent branching, rebasing and large-scale refactors are the norm. By removing some of the friction around source control operations, the IDE contributes to a smoother CI/CD pipeline and better team productivity.
Markdown, TOML and Rust: tooling for modern polyglot projects
Beyond Java and the classic web stacks, Apache NetBeans 30 introduces several new integrations aimed at supporting documentation, configuration and systems programming projects that are increasingly common in multi-language codebases.
The editor now provides image preview and spell checking for Markdown documents, which is a substantial quality-of-life improvement for developers who maintain technical documentation, README files or internal guides directly alongside code. Seeing images rendered inline and catching typos on the fly makes it easier to keep docs polished and up to date.
TOML templates have been added to the IDE, which simplifies the creation and maintenance of configuration files used by many modern tools and ecosystems. Whether you are working with build metadata, application settings or Rust project descriptors, having TOML support built in helps standardize configurations and reduce formatting mistakes.
NetBeans 30 also includes an initial integration with rust-analyzer, opening the door for more serious Rust development inside the IDE. While this integration is still evolving, it already strengthens the tooling available for systems programming, embedded development and performance-critical components that may be written in Rust alongside Java-based services.
These additions highlight the project’s intention to remain relevant in a polyglot world, where documentation, infrastructure as code and multiple programming languages coexist in the same repository. By expanding beyond pure Java, NetBeans 30 becomes more capable of serving as a central hub for diverse technology stacks.
Installation options for Apache NetBeans 30 on Linux
Linux users have several ways to install and run Apache NetBeans 30, depending on whether they prefer classic source builds or more convenient packaging formats like Snap and Flatpak. In all cases, you must ensure that a compatible JDK 21 distribution is installed on the system before launching the IDE.
For those who like full control, compiling NetBeans from source remains an option. You can download the source archives from the official Apache NetBeans website, extract them in a directory of your choice, and then switch to that directory in a terminal. Once there, running the ant command will start the build process for the IDE.
After the compilation finishes successfully, the IDE can be launched by executing the script located at ./nbbuild/netbeans/bin/netbeans. This approach is particularly attractive if you are interested in hacking on the IDE itself, applying custom patches or testing development branches.
If convenience and quick setup are more important, NetBeans is available as a Snap package on distributions that support Snap. You can install it using a simple command in the terminal: sudo snap install netbeans –classic. This method handles dependencies and updates in a straightforward manner and is likely the easiest route for many desktop users.
An additional alternative is to install Apache NetBeans via Flatpak, provided that your Linux system has Flatpak support enabled and configured with the Flathub repository. The installation command is flatpak install flathub org.apache.netbeans, which will pull in the NetBeans Flatpak bundle and integrate it with your desktop environment.
Platform compatibility, Linux distributions and display modes
Running Apache NetBeans and JDK 21 smoothly also depends on the operating system and graphical environment you are using, especially on Linux distributions that support both X.org and Wayland. Different combinations of versions, architectures and display modes have varying levels of support.
On Oracle Linux, multiple releases and architectures are compatible. Oracle Linux 10 supports AArch64 and x64 systems with JDK 21.0.8, but only in XWayland mode. Oracle Linux 9 is available for AArch64, where only X.org mode is supported, as well as x64, where both X.org and XWayland are usable, with XWayland support added starting in JDK 21.0.7.
For Oracle Linux 8, both AArch64 and x64 platforms are supported exclusively under X.org, with Wayland modes not supported. Oracle Linux 7 on x64 also runs only in X.org mode, which is consistent with the older nature of that distribution and its focus on the traditional X11 stack.
Ubuntu users have a range of supported versions. Ubuntu Linux 26.04 LTS on x64 works with JDK 21.0.11 in XWayland mode only, while Ubuntu 25.10 on x64 supports JDK 21.0.9, also restricted to XWayland. Ubuntu 24.04 LTS on x64 benefits from both X.org and XWayland support with JDK 21.0.3, giving users more flexibility in their desktop environment choice.
Ubuntu 22.04 LTS on x64 is limited to X.org mode, with Wayland not supported. This detail matters if you are troubleshooting window behavior, UI glitches or performance anomalies, as switching between XWayland and X.org where allowed can significantly change how the IDE behaves on your system.
Red Hat Enterprise Linux (RHEL) also features broad support for JDK 21. RHEL 10 on AArch64 and x64 supports JDK 21.0.8, but only under XWayland mode. RHEL 9 on AArch64 is restricted to X.org mode, while RHEL 9 on x64 can use both X.org and XWayland, with XWayland support introduced in JDK 21.0.7. RHEL 8 on AArch64 and x64 is limited to X.org, and RHEL 7 on x64 also operates solely with X.org.
SUSE Linux Enterprise Server follows a similar pattern. SLES 16 on x64 supports JDK 21.0.11, but only with XWayland, whereas SLES 15 on x64 is restricted to X.org mode with no Wayland support. Understanding these combinations helps avoid confusion when certain graphical features or window behaviors do not match expectations under different display systems.
Real-world feedback and JDK 21 project build issues
Alongside official announcements, community feedback reveals how NetBeans behaves in real scenarios. One reported case involves Apache NetBeans 19 on Windows 11 Pro with JDK 21, where a user encounters a situation in which building a project fails with a generic “Build failed” message and no further explanation.
According to that report, the same project compiles correctly under JDK 20, suggesting that the older NetBeans 19 release was not fully aligned with JDK 21 at the time. The user mentions that they do not know whether this worked in previous versions and does not plan to submit a pull request, which shows that some combinations of IDE and JDK can still present rough edges without clear diagnostics.
This kind of feedback underscores why Apache NetBeans 30’s explicit requirement for JDK 21 matters. By officially targeting this Java version, the project can test more thoroughly against it, update internal APIs and tool integrations accordingly, and avoid vague “Build failed” errors that plagued previous iterations when used with newer JDKs that were not fully supported.
Users upgrading from older NetBeans versions to 30 should keep in mind that adopting JDK 21 in lockstep with the IDE can resolve many issues that stem from mismatched expectations between the tool and the runtime. When both the IDE and the project are running against a tested combination, build problems become easier to diagnose, and official releases are more likely to behave consistently.
While not every edge case is eliminated, Apache NetBeans 30 clearly positions itself as the version designed to embrace JDK 21 as a first-class citizen, rather than a best-effort compatibility target. This gives the community a stable reference point when reporting bugs or requesting enhancements related to modern Java features.
All these changes—JDK 21 as a baseline, smarter Java support, refreshed build tools, stronger enterprise integration, better web and PHP features, improved Git performance, UI refinements and extra tooling for Markdown, TOML and Rust—come together to push Apache NetBeans 30 into the realm of a genuinely modern IDE that is better aligned with how professional software is built today, whether in small open source projects or large enterprise environments.