Skip to main content

Java 25 Support

· 2 min read
Frédéric Hannes
Frédéric Hannes
R&D Engineer

We now offer support for Java 25 in our JEE applications. Java 25 comes with some new features and performance enhancements as listed in the official release publication.

Java 25 at runtime

TomEE 8 was not compatible with Java 25 due to the removal of the SecurityManager in Java 24 (deprecated in Java 17). A workaround for this issue was added in version 10.2.1 of TomEE. We've now also backported this change to version 8 in our fork of TomEE 8 and released it as part of our TomEE 8.0.19 update.

For now our images will still default to Java 21, but by adding the jre25 modifier to the image tags, you can already make use of the latest LTS version of Java.

Today, this is:

  • docker.normalizedsystems.org/nsx-tomee-base:8.0.19-3.11.1-jre25 for root-based images
  • docker.normalizedsystems.org/nsx-tomee-base:8.0.19-3.11.1-jre25-rootless for rootless images

For the latest version of the image, please refer to the image documentation page.

Compiling for Java 25

To compile for Java 25 and use its language features, you need to change the Java version in the technical infrastructure settings file of your JEE project. Ideally you would also make a new settings file as the name of the settings is typically the version of Java. If you make a new file with a new name, also update the technicalInfrastructure reference in your application instance.

<technicalInfrastructure name="Java 25">
<javaVersion>jdk8</javaVersion>
<jeeVersion>25</jeeVersion>
</technicalInfrastructure>
<applicationInstance name="my-application">
<shortName>my-application</shortName>
<version>1.0.0</version>
<globalOptionSettings name="3.0 Modern"/>
<presentationSettings name="3.1 Future"/>
<businessLogicSettings name="TomEE Postgres Hibernate"/>
<technicalInfrastructure name="Java 25"/>
</applicationInstance>

In addition to this change, you need at least version 9.1.0 of net.democritus:Expanders in your project to target Java 25.