There are separate run and job execution requirements for Jenkins installations.
If you are installing or upgrading to Jenkins 2.357 or later, or to LTS 2.361.1 or later, Java 11 or 17 is required to run Jenkins. Read more about this in the announcement blog post.
Upgrading Java version to 11
Upgrading an existing Jenkins setup from Java 8 to Java 11? Refer to the upgrade guidelines. |
Java 11 Docker installation instructions are included in "Downloading and running Jenkins in Docker".
Alternatively, the jenkins/jenkins:jdk17
Docker image allows you to run the Jenkins controller on Java 17.
Supported Java versions
Only Java 11 and Java 17 are supported. If you install an unsupported Java version, your Jenkins controller will not run. |
These requirements apply to all components of the Jenkins system, including the Jenkins controller, all types of agents, CLI clients, and other components.
The Jenkins project performs a full test flow with the following JDK/JREs:
OpenJDK JDK / JRE 11 - 64 bits
OpenJDK JDK / JRE 17 - 64 bits
JRE/JDKs from other vendors are supported and may be used. Refer to our issue tracker for known Java compatibility issues. Jenkins maintainers actively test HotSpot based Java virtual machines like those from OpenJDK, Eclipse Temurin, and Amazon Corretto. Jenkins maintainers do not test Eclipse OpenJ9 based Java virtual machines. The Platform Special Interest Group does not actively work on OpenJ9 based Java virtual machines.
The JDK versions used to build Java-based projects or run Java-based tools are independent from the version of Java used to run the Jenkins controller and agent processes. During builds, any JRE or JDK version compatible with the host system can be launched. This includes:
Execution of java
or javac
from shell build steps and similar.
Execution of Maven/Ant/… build steps using a JDK managed by a JDK tool installer.
Some plugins have more strict requirements, and may require a build to execute the same Java version used to run the Jenkins controller and agents. A notable plugin example is the Maven Integration Plugin. It requires the JDK version used for Maven builds to be at least the same Java version used in the Jenkins controller. These cases are generally documented in the plugin documentation.
Modern Jenkins controllers and Jenkins agents verify Java requirements and notify users when they are launched with an unsupported version.
The Versions Node Monitors plugin provides detailed Java version monitoring.
The Jenkins project uses Eclipse Temurin as its primary JDK for building and testing Java based applications. This includes:
Container Images
Jenkins core release builds
Testing Infrastructure
Some of the reasons for choosing Temurin are:
Availability over many different Java SE versions and across a wide range of platforms, including different operating systems and architectures.
Regular maintenance and long term support provided by the Eclipse Foundation.
Please submit your feedback about this page through this quick form.
Alternatively, if you don't wish to complete the quick form, you can simply indicate if you found this page helpful?
See existing feedback here.