Java Support Policy

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

Running Jenkins system

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.

Running Jenkins on Java 11 in Docker

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.

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.