Java Support Policy

There are separate runtime and job execution requirements for Jenkins installations.

Running Jenkins system

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.

Running Java-based tools and builds on Jenkins

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.

Monitoring Java versions

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.

JDKs used in Jenkins

The Jenkins project uses Eclipse Temurin as its primary JDK for building and testing Java based applications. This includes:

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.



Was this page helpful?

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.