Java Licensing

Java JRE Licensing

Java JRE Licensing Summary

  • Discontinued JRE: Oracle no longer offers a separate JRE download.
  • Oracle JDK License: Commercial use requires a paid license.
  • OpenJDK: Free, open-source alternative available under GPL.
  • jlink: Use jlink to create custom runtimes for specific needs.

Java JRE Licensing

Java licensing for JRE

The licensing landscape for Java Runtime Environment (JRE) has undergone significant changes over the years, particularly under Oracle’s stewardship.

This article comprehensively overviews Java JRE licensing, its evolution, current status, and implications for developers and organizations.

Historical Context

Java, introduced by Sun Microsystems in 1995, was initially offered as separate downloads, with the Java Development Kit (JDK) and the Java Runtime Environment (JRE).

The JRE was designed for end-users who needed to run Java applications but didn’t require development tools. This model continued for years, making Java widely accessible and popular.

Oracle’s Acquisition and Initial Approach

When Oracle acquired Sun Microsystems in 2010, it initially maintained the existing licensing model, offering both JDK and JRE as separate downloads. However, Oracle began signaling potential changes to the licensing model, eventually leading to significant shifts in how Java was distributed and licensed.

The Transition Away from Separate JRE

The transition away from offering JRE as a separate download was gradual and tied to the introduction of new Java versions:

  • Java 9 (Released September 2017): Introduced the module system, which began to blur the lines between JDK and JRE. The JRE was still available as a separate download, but its role was diminishing.
  • Java 10 (Released March 2018): Continued the trend of modularization. The JRE remained available but was less prominently featured.
  • Java 11 (Released September 2018): Marked a significant change in Java distribution as Oracle stopped providing the JRE as a separate download for commercial use. Instead, the focus shifted entirely to the JDK, and users were encouraged to use jlink to create custom runtime images.

Key Changes in Java 11

Java 11 represented a pivotal moment in Java licensing and distribution:

  • Discontinuation of Separate JRE: Oracle no longer offered JRE or Server JRE as separate downloads. Only the JDK was available as an official Oracle download.
  • Introduction of jlink: Users were encouraged to use the jlink tool to create smaller, custom runtime images tailored to their applications. This approach allowed for more efficient Java runtime environments.
  • Licensing Changes: Oracle introduced new licensing terms for Java SE 11 and later versions, requiring a paid license for commercial use of Oracle JDK.

Implications of JRE Discontinuation

The discontinuation of JRE as a separate offering had several implications for organizations and developers:

  • Simplified Distribution: Oracle streamlined its Java offerings by focusing on the JDK, simplifying the distribution model but requiring users to adapt their deployment strategies.
  • Customization Opportunities: The introduction of jlink allowed developers to create customized runtime environments tailored to their application’s needs, potentially reducing the footprint and increasing performance.
  • Licensing Considerations: Organizations needed to reassess their Java licensing strategy, especially for commercial use. Licensing costs and compliance became more complex.
  • Impact on Legacy Applications: Applications designed to run on older JRE versions must be reevaluated and potentially updated to ensure compatibility with the new approach.

Current State of Java Runtime Licensing

As of 2024, the landscape for Java runtime licensing is as follows:

  • Oracle JDK: A commercial license is required for production use. Oracle JDK offers long-term support and regular updates, but no separate JRE download is available.
  • OpenJDK: OpenJDK remains a free and open-source alternative. It is available under the GNU General Public License (GPL) with a Classpath Exception. Users can create custom runtimes using jlink, but no standalone JRE exists.
  • Alternative Distributions: Various vendors offer their OpenJDK-based distributions, some with runtime environments tailored to specific use cases. Examples include AdoptOpenJDK/Adoptium, Amazon Corretto, and Azul Zulu.

Licensing Models and Considerations

Licensing Models and Considerations
  • Oracle Java SE Subscription: Introduced in 2018 and updated in 2023, this model is based on total employee count rather than specific Java users. It provides access to Oracle JDK updates and support but requires a paid subscription for production use.
  • No-Fee Terms and Conditions (NFTC): This applies to certain versions of Oracle Java (e.g., Java 17 for a limited time). It allows free commercial use with some restrictions, but support and updates require a paid subscription after a certain period.
  • OpenJDK Licensing: OpenJDK is free to use, modify, and distribute under the GPL with the Classpath Exception, making it a popular choice for those looking to avoid commercial licensing.

Impact on Development and Deployment Practices

The discontinuation of JRE and changes in licensing have influenced how developers and organizations approach development and deployment:

  • Modular Development: There is an increased focus on modular application design to utilize jlink capabilities, allowing for more efficient runtimes.
  • Custom Runtime Creation: Development teams now need to create and manage custom runtime images, which can lead to more optimized Java applications but require additional effort and expertise.
  • Containerization: The shift in licensing has driven greater adoption of containerization technologies to manage Java runtime environments more efficiently.
  • Version Management: Organizations must carefully choose which Java versions to use and support, balancing security, compatibility, and licensing costs.

Challenges and Considerations

Organizations face several challenges in navigating the current Java runtime landscape:

  • Licensing Complexity: Understanding the nuances of different licensing models can be challenging, especially as Oracle’s requirements have evolved.
  • Cost Management: It is crucial to balance the costs of commercial licenses against the benefits of support and regular updates, especially for large enterprises.
  • Security Updates: Ensuring the timely application of security updates, especially for older versions of Java, is a significant concern for maintaining secure environments.
  • Application Compatibility: Managing compatibility between legacy applications and different Java runtime versions can require substantial effort, particularly as the JRE is no longer available separately.
  • Skills and Knowledge: Developing expertise in tools like jlink for creating custom runtime images is essential for teams working with the latest Java versions.

Best Practices for Java Runtime Management

Best Practices for Java Runtime Management

To effectively manage Java runtime environments, organizations should consider the following best practices:

  • Conduct Regular Audits: Maintain an accurate inventory of Java deployments, versions, and licensing status to ensure compliance and identify potential risks.
  • Evaluate Licensing Needs: Based on the organization’s needs, assess whether a commercial license is necessary or if open-source alternatives suffice.
  • Implement Version Control: Establish processes for managing and updating Java versions across the organization to ensure compatibility and compliance.
  • Explore Custom Runtimes: Utilize jlink to create optimized runtime images for specific applications, reducing the footprint and improving efficiency.
  • Consider Alternative Distributions: Evaluate OpenJDK-based alternatives that may offer more flexible licensing terms, such as Amazon Corretto or Azul Zulu.
  • Stay Informed: Keep abreast of changes in Java licensing and distribution models to adapt to evolving requirements.
  • Plan for Long-Term Support: Develop strategies for maintaining applications on supported Java versions to avoid running unsupported and potentially insecure software.

Java JRE Licensing FAQ

What is Java JRE licensing?
Java JRE licensing refers to the rules governing the use of the Java Runtime Environment, particularly after Oracle stopped offering JRE as a separate download in Java 11.

Can I still download Java JRE separately?
No, Oracle no longer provides a separate JRE download for Java 11 and later. Users must create custom runtime images using the JDK and tools like jlink.

What is the main licensing change for Java JRE after Java 11?
Oracle stopped providing a separate JRE download and introduced new licensing terms for commercial use of the JDK, starting with Java 11.

How do I create a custom runtime environment if JRE is not available?
Use the jlink tool, introduced with Java 9, to create custom runtime images that include only your application’s required modules.

Is Java JRE free for commercial use?
No, Oracle JDK, which includes the runtime, requires a commercial license for production use. OpenJDK is available as a free alternative.

What is OpenJDK, and how does it differ from Oracle JDK?
OpenJDK is a free and open-source version of Java SE. It has the same core functionality as Oracle JDK but is available under a different licensing model.

Can I use OpenJDK instead of Oracle JRE?
OpenJDK is a viable alternative to Oracle JDK and can be used for development and production without a commercial license.

What does Oracle’s Java SE Subscription include?
Oracle’s Java SE Subscription includes access to updates, security patches, and long-term support, but it requires a paid license for commercial use.

How has licensing changed for Java SE 11 and later versions?
For Java SE 11 and beyond, Oracle requires a commercial license for production use of the JDK. A separate JRE is not available for these versions.

Are there alternatives to Oracle’s Java JRE?
Several OpenJDK-based distributions, such as Amazon Corretto and Azul Zulu, provide alternatives to Oracle’s JRE and come with different licensing terms.

Why did Oracle discontinue the JRE as a separate download?
Oracle discontinued the separate JRE to streamline Java distribution, focusing instead on custom runtimes that users create using tools like jlink.

How do I decide between Oracle JDK and OpenJDK?
Consider factors like support, licensing costs, and your application’s specific needs. Oracle JDK requires a paid license for commercial use, while OpenJDK is free.

What is jlink, and why is it important for Java runtime?
jlink is a tool introduced in Java 9 that allows users to create custom runtime images tailored to their application, which helps reduce the footprint and improve efficiency.

Can I still run legacy applications that require the old JRE?
Yes, but you may need to update these applications to work with a custom runtime created using jlink, as Oracle no longer provides a separate JRE.

What are the main challenges of using Oracle JDK in production?
The main challenges include licensing costs, compliance with Oracle’s commercial terms, and managing security updates and support contracts.

Author

  • Fredrik Filipsson

    Fredrik Filipsson brings two decades of Oracle license management experience, including a nine-year tenure at Oracle and 11 years in Oracle license consulting. His expertise extends across leading IT corporations like IBM, enriching his profile with a broad spectrum of software and cloud projects. Filipsson's proficiency encompasses IBM, SAP, Microsoft, and Salesforce platforms, alongside significant involvement in Microsoft Copilot and AI initiatives, improving organizational efficiency.

    View all posts