There are separate runtime and job execution requirements for Jenkins installations.
The following Java versions are required to run Jenkins:
Supported Java versions | Long term support (LTS) release | Weekly release |
---|---|---|
Java 11, Java 17, or Java 21 |
N/A |
2.419 (August 2023) |
Java 11 or Java 17 |
2.361.1 (September 2022) |
2.357 (June 2022) |
Java 8, Java 11, or Java 17 |
2.346.1 (June 2022) |
2.340 (March 2022) |
Java 8 or Java 11 |
2.164.1 (March 2019) |
2.164 (February 2019) |
Supported Java versions
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. You do not need to build your application with the same version of Java used to run Jenkins itself; see the "Running Java-based tools and builds on Jenkins" section below.
Upgrading Java to a newer version
Upgrading an existing Jenkins setup to a newer version of Java? Refer to the Java 11 to 17 upgrade guidelines and the Java 8 to 11 upgrade guidelines. |
Docker installation instructions are included in "Downloading and running Jenkins in Docker".
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
OpenJDK JDK / JRE 21 - 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.