Skip to content

GA BLOG - Support for Java 24 in Open Liberty #31244

Open
@gjwatts

Description

@gjwatts

The information you provide here will be included in the Open Liberty GA release blog post (example), which will be published on openliberty.io/blog/, and potentially elsewhere, to promote this newly released feature/function of Open Liberty. For this post to be included in the GA issue please make sure that this is completed by the end of Friday following the GM (Wednesday). The beta and release blogs are created using automation and rely on you following the template's structure. DO NOT REMOVE/ALTER THE <GHA> TAGS THROUGHOUT THIS TEMPLATE.

Please provide the following information:

  1. If this was previously published in a beta blog post, then provide the link to that OpenLiberty/open-liberty beta blog post issue on the next line between the <GHA-BLOG-BETA-LINK> tags. If nothing has changed since the beta, you're done and can omit the remaining steps. If you need to make updates/alterations to the beta content, then do all the steps.
    https://github.com/OpenLiberty/open-liberty/issues/0

Java 24 is the latest release of Java, expected out in March 2025. It contains many new features and enhancements over previous versions of Java. However, since Java 24 is not a Long-Term-Support (LTS) release, support for it will be dropped once the next version of Java is supported. It offers many features that you will want to check out.

Here are the JEP changes in Java 24:
404: Generational Shenandoah (Experimental)
450: Compact Object Headers (Experimental)
472: Prepare to Restrict the Use of JNI
475: Late Barrier Expansion for G1
478: Key Derivation Function API (Preview)
479: Remove the Windows 32-bit x86 Port
483: Ahead-of-Time Class Loading & Linking
484: Class-File API
485: Stream Gatherers
*486: Permanently Disable the Security Manager
487: Scoped Values (Fourth Preview)
488: Primitive Types in Patterns, instanceof, and switch (Second Preview)
489: Vector API (Ninth Incubator)
490: ZGC: Remove the Non-Generational Mode
491: Synchronize Virtual Threads without Pinning
492: Flexible Constructor Bodies (Third Preview)
493: Linking Run-Time Images without JMODs
494: Module Import Declarations (Second Preview)
495: Simple Source Files and Instance Main Methods (Fourth Preview)
496: Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism
497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm
498: Warn upon Use of Memory-Access Methods in sun.misc.Unsafe
499: Structured Concurrency (Fourth Preview)
501: Deprecate the 32-bit x86 Port for Removal

*=With the disabling of the Security Manager, you can no longer attempt to start Java with a Security Manager, install one during runtime nor use AccessController::checkPermission, Policy::setPolicy, SecurityManager::check* or Subject::getSubject. Please make sure to fully test your applications for this big change and refer to the description section of JEP 486 for more information.

Start taking advantage of the changes in Java 24 in Open Liberty now and get more time to review your applications, microservices and runtime environments on your favorite server runtime!

To start using Java 24 with Open Liberty, just download the latest release of Java 24, download and install the 25.0.0.4 or later version of Open Liberty, edit your Liberty server's server.env file and set JAVA_HOME to your Java 24 installation and start testing!

For more information on Java 24, please visit the Java 24 release notes page, API Javadoc page or download page.
For more information on Open Liberty, please visit our documentation page.

What happens next?

  • Add the label for the GA you're targeting: target:YY00X.
  • Make sure this blog post is linked back to the Epic for this feature/function.
  • Your paragraph will be included in the GA release blog post. It might be edited for style and consistency.
  • You will be asked to review a draft before publication.
    • Once you've approved the code review, close this issue.
  • If you would also like to write a standalone blog post about your update (highly recommended), raise an issue on the Open Liberty blogs repo. State in the issue that the blog post relates to a specific release so that we can ensure it is published on an appropriate date (it won't be the same day as the GA blog post).

Metadata

Metadata

Assignees

Labels

Blogtarget:25004target:gaThe Epic is ready for focal approvals, after which it can GA.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions