Home / Blog / Oracle GraalVM Licensing
March 2026 12 min read Oracle Licensing · Java & JVM

Oracle GraalVM Licensing: Enterprise Edition, Community Edition & Production Use Rules 2026

GraalVM has become one of the most technically compelling JVM alternatives available — offering ahead-of-time native image compilation, polyglot language execution, and performance improvements that matter in cloud-native deployments. But Oracle's licensing treatment of GraalVM has shifted significantly, and the boundary between free and paid use is sharper than most development teams understand.

GraalVM Editions: Enterprise vs Community

Oracle now manages GraalVM through two distinct distributions, and the licensing implications differ significantly. Understanding which edition you're running — and in what context — is the foundation of compliant GraalVM deployment.

GraalVM Community Edition remains the open-source distribution, distributed under the GPLv2 with Classpath Exception. This means it is freely available, modifiable, and distributable, provided you comply with GPL terms. For most development and even some production workloads, GraalVM Community is a legitimate compliance path.

Oracle GraalVM (formerly branded as GraalVM Enterprise before 2023) is Oracle's commercial distribution. However, in a move that confused many organizations, Oracle made Oracle GraalVM free under the GraalVM Free Terms and Conditions (GFTC) — analogous to how Oracle made Java 17+ free for production use under the Oracle No-Fee Terms and Conditions.

The critical distinction: "free" does not mean "unrestricted." Oracle GraalVM, while free to use, is not open source. It comes with restrictions on competing product creation, usage telemetry, and commercial exploitation.

Oracle has positioned GraalVM as an extension of the Java SE ecosystem. If your organization holds an Oracle Java SE subscription, Oracle GraalVM is included at no additional cost. This aligns with Oracle's broader strategy of bundling advanced runtime technologies into the SE subscription tier.

Free Weekly Briefing

Oracle Licensing Intelligence — In Your Inbox

Audit alerts, contract renewal tactics, Java SE updates and negotiation intelligence from former Oracle insiders. Corporate email required.

2,000+ enterprise Oracle stakeholders. Unsubscribe anytime. No personal emails.

However, the relationship is more nuanced than simple inclusion:

  • Java SE Subscription holders: Oracle GraalVM is included. Licensing compliance follows Java SE terms — typically Employee Metric or Named User Plus.
  • Non-Java SE subscribers using Oracle GraalVM: You fall under the GFTC, but Oracle may still require you to register usage and accept usage monitoring.
  • GraalVM polyglot runtimes (JavaScript, Python, Ruby): These are covered under GFTC if you're using Oracle GraalVM, but language-specific open-source licenses (e.g., Node.js for JavaScript) also apply.

The implication for your estate: if you transition from a Java SE subscriber to a non-subscriber, your GraalVM licensing changes from "included" to "free but monitored."

GraalVM Community Edition: Open Source Terms Explained

GraalVM Community Edition is distributed under GPLv2 with Classpath Exception. This is one of the most developer-friendly open-source licenses in the JVM ecosystem, modeled on how Java itself is distributed.

What the Classpath Exception means:

The Classpath Exception allows you to link to GraalVM Community Edition in your closed-source application without forcing your entire codebase to be GPL. You are not obliged to open-source your application simply because you use GraalVM Community — only the modifications you make to GraalVM itself need to be shared under GPL.

  • You can: Use GraalVM Community in closed-source applications, deploy it in production, modify it for internal purposes, distribute it with your product (provided you include the GPL license notice).
  • You must: Distribute the source code of GraalVM (if modified), include license notices, make available any changes you've made to the runtime itself.
  • You cannot: Remove licensing or copyright notices, claim you wrote GraalVM, or incorporate GraalVM code into proprietary libraries without GPL compliance.

In practice, most organizations using GraalVM Community for container-based workloads find GPL compliance straightforward: document your use, retain license notices, and avoid modifying the runtime core.

Unsure Which Edition You're Running?

Licensing confusion over GraalVM editions is one of the leading causes of non-compliance found during Oracle LMS audits. Our experts can assess your GraalVM estate and map it to compliant licensing pathways.

Get a Free Assessment

GraalVM Enterprise Edition: What Requires a License

Prior to 2023, GraalVM Enterprise was a separately licensed product requiring paid subscription. Oracle has since relicensed it as Oracle GraalVM and made it available for free under the GFTC. However, not all customers have transitioned — understanding what "free" means under the GFTC is essential.

Oracle GraalVM: The GFTC Terms

Oracle GraalVM is free under these conditions:

  • Internal use: You can use it for internal business purposes at no cost.
  • No competing products: You cannot use Oracle GraalVM to create products that compete with Oracle's offerings (e.g., you cannot build a competing GraalVM distribution).
  • Usage monitoring: Oracle reserves the right to collect non-personal usage data and performance metrics.
  • Support: Free use does not include Oracle Support. Support is available separately.

The restriction on "competing products" is vague but important. If your organization is building runtime technologies, polyglot language support systems, or ahead-of-time compilation tools that compete with Oracle's vision, Oracle may argue you require a paid license.

For most enterprises, these restrictions are not limiting. However, startups building alternative runtimes, research institutions publishing competing technologies, or enterprises offering GraalVM as a managed service should carefully review the GFTC.

Native Image Compilation: Licensing Implications

GraalVM's Native Image feature — which compiles Java bytecode to native executables using ahead-of-time (AOT) compilation — is one of the most sought-after GraalVM capabilities. But licensing differs between editions.

Oracle GraalVM Native Image

Oracle GraalVM includes full Native Image support, with additional optimisations not available in Community Edition:

  • Advanced optimization flags for cloud deployment
  • PGO (Profile-Guided Optimization) support
  • Extended library compatibility
  • Proprietary AOT compiler enhancements

These features are covered under the GFTC when you use Oracle GraalVM.

GraalVM Community Native Image

GraalVM Community Edition includes Native Image, but with reduced feature breadth. The core AOT compilation works, but some of Oracle's proprietary optimisations are unavailable. For most cloud-native workloads, Community Edition's Native Image is sufficient.

Licensing Compliance for Native Image Deployment

When you deploy a native executable built with GraalVM:

  • The binary itself: If built with Oracle GraalVM, it's covered under GFTC. If built with Community Edition, it follows GPL terms.
  • Library dependencies: Any third-party libraries linked into the native image must comply with their own licenses. This is where mixed-license scenarios become complex.
  • Runtime metrics: If built with Oracle GraalVM, Oracle's usage monitoring may apply, depending on your organization's registration.

For container deployments, ensure your licensing documentation aligns with the edition used to build the image.

Polyglot Runtime: JavaScript, Python, Ruby in Production

GraalVM's polyglot capabilities — the ability to run JavaScript, Python, Ruby, and other languages on the JVM — add complexity to licensing. Each language has its own open-source licensing, and interactions with Oracle GraalVM licensing create layered obligations.

JavaScript on GraalVM (GraalVM.js)

GraalVM includes a JavaScript engine (GraalVM.js) that can replace Node.js for certain workloads. Licensing:

  • Oracle GraalVM: Covered under GFTC. You can use GraalVM.js as a Node.js alternative in production.
  • GraalVM Community: Covered under GPL. If you distribute a container or product using Community Edition's JavaScript runtime, GPL terms apply.

Important: You cannot use GraalVM.js under GFTC if it violates the "no competing products" clause — though Oracle rarely enforces this for typical enterprise deployments.

Python and Ruby Support

GraalVM's Python (via Truffle) and Ruby (via TruffleRuby) implementations are similarly licensed. Both are included in Oracle GraalVM (under GFTC) and in Community Edition (under GPL). However, Python and Ruby's ecosystems — the packages you install via pip or gem — carry their own licenses.

  • If you use Python packages with GPL or copyleft licenses, those obligations overlay GraalVM licensing.
  • Ruby's gems carry mixed licenses (MIT, Apache, GPL, etc.). Audit your dependencies.

Production Polyglot Workloads

For production polyglot deployments, document:

  • Which GraalVM edition you're using (Oracle or Community)
  • Which language runtimes are active
  • All third-party language packages and their licenses
  • Whether you're running Oracle GraalVM under GFTC or a Java SE subscription

GraalVM in Containers and Kubernetes

Containerised GraalVM deployments — the most common production pattern — raise specific licensing questions around container counts, image copies, and licensing scope.

License-per-Container or License-per-Image?

A frequent question: if you build one GraalVM container image and deploy it across 100 Kubernetes pods, how many licenses do you need?

Answer: The license follows the binary, not the container count. Oracle's Employee Metric (for Java SE subscriptions) counts the number of named employees or processors, not container instances. Deploying the same image across 100 pods does not multiply your licensing obligations.

However, if you're using Oracle GraalVM without a Java SE subscription, you fall under GFTC, which requires registration and usage disclosure. Oracle's usage monitoring may count runtime instances for compliance tracking.

GraalVM Community in Containers

If your container image uses GraalVM Community Edition, include the GPL license notice in your image. Document the license in your README or container metadata.

Base Image Licensing

GraalVM is often layered onto base images (Alpine, Ubuntu, etc.). Each layer has licensing:

  • Base image (e.g., Alpine): Typically MIT or Apache 2.0
  • GraalVM layer: GFTC (Oracle) or GPL (Community)
  • Application layer: Your own licensing

Ensure your final image's licensing is internally consistent and documented.

Oracle LMS and GraalVM Audit Detection

Oracle's License Management Services (LMS) audit team uses detection scripts that identify Java-related software across your infrastructure. GraalVM is increasingly included in these scans.

What Oracle LMS Detects

Oracle's LMS scripts scan for:

  • GraalVM installation directories and registry entries
  • Process execution strings mentioning "graalvm" or related binaries
  • Container images containing GraalVM (via image scanning if Oracle has access)
  • Version metadata and build information

The LMS scanner does not consistently distinguish between Oracle GraalVM and Community Edition — this is where non-compliance risk emerges. If your estate contains a mix of both editions and you cannot quickly prove compliance for each instance, Oracle may assume all instances require licensing.

GraalVM in Audit Scenarios

During an Oracle LMS audit, you will likely be asked:

  1. Which GraalVM edition(s) do you run?
  2. How many instances of GraalVM are deployed?
  3. Are they covered under Oracle Java SE subscriptions?
  4. What is the business purpose (development, testing, production)?
  5. Do you modify or redistribute GraalVM?

To prepare, audit your own estate first. Document every GraalVM installation, the edition, deployment context, and licensing justification. If you're using Community Edition, retain compliance documentation (GPL notices, source availability statements).

Prepare for Oracle LMS with Confidence

Oracle LMS audits on GraalVM are increasing. Our survival guide walks through every licensing scenario, audit defense strategies, and remediation paths. Download the free white paper.

Download the Survival Guide

Migration from GraalVM EE to Community: What Changes

Many organizations originally licensed GraalVM Enterprise before Oracle made it free. Others are evaluating migration to Community Edition to reduce Oracle dependency or operational overhead. Understanding what breaks — and what doesn't — is critical to successful migration.

What Stays Compatible

Most core GraalVM features work identically across editions:

  • Native Image compilation (with minor feature differences)
  • Polyglot language execution (JavaScript, Python, Ruby)
  • JVM bytecode compatibility
  • Container deployment
  • Most library and framework support

What Changes or Is Limited in Community Edition

  • PGO (Profile-Guided Optimization): Available in Oracle GraalVM but not Community.
  • Advanced native image optimisations: Oracle GraalVM has proprietary flags and enhancements.
  • Commercial support: Oracle GraalVM can be paired with commercial support contracts; Community is community-supported only.
  • Licensing documentation: Community requires GPL compliance documentation; Oracle GraalVM uses the simpler GFTC model.

Migration Path

A typical migration to Community Edition involves:

  1. Assessment: Audit your codebase for Oracle-specific GraalVM features or proprietary APIs.
  2. Dev/test migration: Rebuild and test with GraalVM Community Edition in non-production environments.
  3. Performance validation: Compare performance; note any regressions from lost optimisations.
  4. License documentation: Update your license file database to include GPL notices.
  5. Production rollout: Gradual rollout to production, monitoring for unexpected behavior.

Most enterprises find the migration straightforward, especially if they're not relying on PGO or advanced native image optimisations.

Key Takeaways

  • Oracle GraalVM (formerly Enterprise) is now free under GFTC — but "free" doesn't mean unrestricted or open source.
  • GraalVM Community uses GPLv2 with Classpath Exception — fully open source, with no proprietary restrictions but with GPL compliance obligations.
  • Oracle GraalVM is included in Oracle Java SE subscriptions; standalone use follows GFTC.
  • Native Image and polyglot runtimes have different feature sets between editions — check before migrating.
  • GraalVM in containers follows Java SE Employee Metric if Oracle GraalVM is used; license covers the binary, not container count.
  • Oracle LMS scripts detect GraalVM installations — estate visibility and compliance documentation are essential before any audit.
  • Migrating from GraalVM EE to Community is viable but requires technical assessment of feature dependencies, especially around Native Image optimisations.