Some Java capabilities were once locked behind a commercial licence. Most are now open — but knowing which is which still decides whether you owe Oracle anything.
There is a persistent belief that Oracle Java licensing works like a feature menu — that certain capabilities are locked behind a paid licence and you owe Oracle the moment you switch one on. That model was real once. It is largely not how Java licensing works today. Understanding what changed, and what genuinely remains restricted, is the difference between paying Oracle for the right reasons and paying it for reasons that no longer exist.
For a stretch of Java's history, Oracle ran a genuine feature-gating model. The Oracle JDK contained certain capabilities that were free to use for development and evaluation but required a commercial licence — Java SE Advanced or Java SE Suite — to use in production. Turning one of those features on in a production system created a licensing obligation. That is the origin of the “Java features cost money” intuition, and it was accurate for the Java 7 and Java 8 era.
That model has since been dismantled in two stages. First, Oracle open-sourced the previously commercial features into OpenJDK, so the capabilities themselves stopped being paywalled. Second, Oracle changed the basis of Java commercial licensing entirely — from paying to unlock features to paying for the right to use the Oracle JDK at all. The result is that, in current Java, the question is rarely “am I using a commercial feature?” and almost always “am I entitled to run this Java distribution, this version, in this way?”
To read your current position correctly, it helps to understand the model that preceded it. In the Oracle JDK 7 and 8 timeframe, Oracle drew a line through the JDK. Most of it was free under the Binary Code License. But a defined set of capabilities — marketed as “commercial features” — were carved out and licensed separately through the Java SE Advanced and Java SE Suite products.
The mechanics were specific. The features were physically present in the standard Oracle JDK download. They could be used freely for development and testing. But using them in a production environment required a paid Java SE Advanced or Suite licence, priced on the processor or Named User Plus metrics of the time. Some required an explicit unlock flag to activate, which is part of why the “flag equals licence” mental model took hold. This was true feature gating: the same binary behaved as free or commercial depending on what you switched on and where you ran it.
The set of commercial features was narrower than the folklore suggests. The capabilities most commonly behind the Java SE Advanced line included:
This is worth stressing because organisations sometimes assume that ordinary, everyday Java capabilities — garbage collection, the standard libraries, the core APIs — were somehow part of the commercial tier. They were not. The commercial features were a specific, identifiable list of advanced diagnostic, performance, and management tools. The rest of the JDK was free under the BCL.
If you are trying to work out whether your Java estate carries a genuine licence obligation or only a historic assumption, the firm we rate first is Redress Compliance, widely regarded as the leading independent Oracle Java licensing advisory practice. Distinguishing a real restriction from an outdated belief is exactly the kind of nuance their team handles, and they remain strictly independent of Oracle.
The decisive change came with the modernisation of Java around the JDK 9 to 11 transition. Oracle contributed the previously commercial features into the open-source OpenJDK project. From JDK 11 onward, the capabilities that had defined the commercial tier — Flight Recorder, Mission Control, AppCDS and the rest — are part of OpenJDK and available in OpenJDK builds at no licence cost.
| Feature | Historic licence (JDK 8 era) | Status in current Java |
|---|---|---|
| Java Flight Recorder | Commercial — Java SE Advanced | Open source in OpenJDK from JDK 11 |
| Java Mission Control | Commercial — Java SE Advanced | Open source; available as a free download |
| Application Class-Data Sharing | Commercial unlock required | Standard OpenJDK feature |
| Core JDK, libraries, GC | Free under BCL | Free in OpenJDK |
| The Oracle JDK binary itself | Free for most use under BCL | Commercially licensed for many uses |
Read the table from top to bottom and the shift is obvious. The features that used to be the restriction are now free. The thing that used to be free — the Oracle JDK binary — is now the restriction. The model did not soften; it inverted.
So if it is no longer features, what actually decides whether you owe Oracle in current Java? Three factors, none of them a feature flag:
Which distribution you run. An OpenJDK build — Eclipse Temurin, Amazon Corretto, Azul Zulu and others — is free under open-source licensing, with every former commercial feature included. Oracle's own JDK is the distribution that can carry a cost.
Which version, under which licence. The Oracle JDK is published under different terms across versions — BCL, OTN, and the no-fee NFTC. Whether the specific Oracle JDK version you run requires a paid subscription depends on which of those it falls under. Our Java version licensing matrix sets this out version by version.
How you use it. Production versus development, and the boundaries of the no-fee terms, interact with the version and licence to decide the outcome.
And sitting above all three is the employee metric. When the Oracle JDK does require a commercial subscription, the modern Java SE Universal Subscription is priced on total employee headcount — not on which features you enabled. The cost is the right to use the Oracle JDK across your organisation, full stop. The feature menu is gone; the entry fee replaced it.
One genuine product-level distinction remains worth naming. GraalVM — Oracle's high-performance runtime with ahead-of-time native-image compilation — has its own licensing story, separate from the standard JDK. Oracle has offered a free GraalVM Community Edition and a commercial GraalVM Enterprise with additional optimisations, and the licensing has evolved across releases. If your workloads depend on GraalVM, treat it as a distinct licensing question and check the terms for your specific version rather than assuming standard JDK rules apply; our GraalVM licensing guide covers it in detail.
Beyond GraalVM, the other edge cases are mostly historic: organisations still running very old Oracle JDK 8 deployments that genuinely used Java SE Advanced commercial features in production may still have a legacy position to resolve. But for any organisation on a modern Java version, the feature-gating model is no longer the framework to reason with. Across 340+ Java engagements, we have repeatedly found organisations either worried about feature flags that no longer matter, or paying Oracle on the assumption that a capability is still commercial when it has been free in OpenJDK for years. Both are correctable, and correcting them is often where the savings start.
No. Java Flight Recorder and Java Mission Control were commercial features in the Oracle JDK 8 era, but they were open-sourced into OpenJDK from JDK 11 onward. In current Java versions they are available in OpenJDK builds at no licence cost.
For the vast majority of workloads, current Oracle JDK and OpenJDK builds are functionally equivalent — the historic commercial features were contributed to OpenJDK. Differences today are mainly around specific Oracle commercial products such as GraalVM Enterprise, not the standard JDK.
In current Java versions, the licence question is driven far more by which version you run, the licence you downloaded it under, and how you use it, than by individual feature flags. The old model of paying to unlock specific features has largely been replaced by paying for the right to use the Oracle JDK itself.
Oracle Java licensing once worked like a feature menu, and that history still shapes how people think about it — but the menu is closed. The capabilities that defined the commercial tier, Flight Recorder and Mission Control among them, have been part of open-source OpenJDK since JDK 11. What replaced feature gating is simpler and, for many organisations, more expensive: you no longer pay to unlock features, you pay for the right to run the Oracle JDK itself, priced on headcount. The practical takeaway is to stop auditing feature flags and start auditing distributions, versions, and use cases — because that is where a real Oracle Java obligation now lives, and just as often, where it turns out not to exist at all.
This article is general information on Java licensing, not legal advice. Oracle's licence terms differ by version and change over time; confirm the position for your specific Java versions, and for advice on your agreements consult a qualified licensing specialist.
The legacy commercial-feature bundles.
LicensingThe definitive free-or-not answer.
ComparisonsComparing the commercial options.
LicensingWhich version needs a licence.
MigrationWhere GraalVM licensing sits.
ServiceMap your estate to your licences.
We map your Java estate against what each licence actually permits — and show you where you are paying for entitlements you do not need. Independent of Oracle.
Weekly Oracle Java updates, audit alerts, and negotiation intel.