Choosing the right JDK for WildFly and JBoss EAP 7

This tutorial discusses the recommended JDK versions to be used for WildFly and JBoss Enterprise Application Platform (EAP).

The modularization of the JVM that began with Java 9 had a significant impact on a complex server like WildFly, particularly in the areas of classloading and reflection, both of which are extensively used. Since the early days of Java 9 development the WildFly team has worked to ensure that not only the WildFly code itself, but also the integrated libraries would all run well on the later generation JVMs.

Currently the minimun version required to run a recent version of WildFly (15-21) is Java 8 (Oracle JDK or OpenJDK).

More specifically, each server release has a minimum requirement and also a “maximum” version, which is the last JDK version on which the application server has been tested. You should therefore use any JDK included in the set Min-Max as summarized by this table:

WildFly Version Min. JDK Max JDK
15 8 11
16 8 12
17 8 13 (Early stages testing)
18 8 13
19 8 13
20 8 13
21 8 13
22 8 13
23 8 13

That beind said, which is the recommended JDK version for WildFly 20 ? the recommendation from the WildFly team is that you run WildFly on the most recent long-term support release (LTS), i.e. on JDK 8 and 11 for WildFly 20. As a matter of fact, there is considerably more testing of WildFly itself on the LTS JDKs therefore it is recommended to use either JDK 8 or 11.

JBoss Enterprise Application Server 7

In order to be running in a supported configuration, JBoss EAP must be running in one specific Technology Compatibility Kit (TCK) certified implementations and on one of the operating systems supported by that implementation. In terms of JDK, here is the list of supported ones, in respect to each JBoss EAP 7 version and RHEL 7:

Supported JDKs
7.1.0 Oracle JDK 1.8 – Open JDK 1.8 – IBM JDK 1.8
7.2.0 Oracle JDK 1.8 and 11 – Open JDK 1.8 and 11 – IBM JDK 1.8
7.3.0 Oracle JDK 1.8 and 11 – Open JDK 1.8 and 11 – IBM JDK 1.8 – Eclipse OpenJ911