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 minimum 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|
|17||8||13 (Early stages testing)|
That being 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. On a balance, due to the amount of tests, it is recommended to use JDK 11.
It is worth mentioning about the recent support for Java 17 since WildFly 25 which includes PMS configuration options in the standalone.conf script.
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:
|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
|7.40||Oracle JDK 1.8 and 11. – IBM JDK 1.8.x – Eclipse OpenJ9 11 – Open JDK 1.8 and 11
Azul Zulu 8.58 – 11.52 – Azul Zulu Prime 1.8.0_302 – 11.0.12