This is a joint blog post prepared by the Java 11 Support Team: Adrien Lecharpentier, Ashton Treadway, Baptiste Mathus, Jenn Briden, Kevin Earls, María Isabel Vilacides, Mark Waite, Ramón León and Oleg Nenashev.

Jenkins Java

We have worked hard for this and it’s now here. We are thrilled to announce full support for Java 11 in Jenkins starting from Jenkins 2.164 (released on Feb 10, 2019) and LTS 2.164.1 (ETA: March 14th). This means you can now run your Jenkins controllers and agents with a Java 11 JVM.

Starting in June 2018, many events were organized to improve Jenkins code base and add Java 11 support. Beyond these events, Core/Plugins maintainers and many other contributors have worked hard to make sure they discover and solve as many issues as possible related to Java 11 support.

The effort to support Java 11 led to the creation of the JEP-211: Java 10+ support in Jenkins. It also spurred the creation of the Platform Special Interest Group to coordinate the Java 11 work and other platform support efforts.

Celebration

We’d like to take a moment to thank everyone involved in these tasks: code contributors, issue reporters, testers, event planners and attendees and all those in the community who have generously lent their time and support to this effort. Thank you all!

Here are some of the contributors who helped with this task (alphabetical order):

Alex Earl, Alyssa Tong, Ashton Treadway, Baptiste Mathus, Carlos Sanchez, Daniel Beck, David Aldrich, Denis Digtyar, Devin Nusbaum, Emeric Vernat, Evaristo Gutierrez, Gavin Mogan, Gianpaolo Macario, Isabel Vilacides, James Howe, Jeff Pearce, Jeff Thompson, Jenn Briden, Jesse Glick, Jonah Graham, Kevin Earls, Ksenia Nenasheva, Kohsuke Kawaguchi, Liam Newman, Mandy Chung, Mark Waite, Nicolas De Loof, Oleg Nenashev, Oliver Gondža, Olivier Lamy, Olivier Vernin, Parker Ennis, Paul Sandoz, Ramón León, Sam Van Oort, Tobias Getrost, Tracy Miranda, Ulli Hafner, Vincent Latombe, Wadeck Follonier

(We are deeply sorry if we missed anyone in this list.)

Guidelines

In order to keep it simple, here is how you can start Jenkins on Java 11 using the Docker image. You can select a Java 11 based image by suffixing the tag of the image with -jdk11. If you are upgrading an existing instance please read the Upgrading Jenkins Java version from 8 to 11 page before upgrading.

So you can run Jenkins on Java 11 with:

docker run -p 50000:50000 -p 8080:8080 jenkins/jenkins:2.164-jdk11

However, and as always, you can still start Jenkins with other methods. Please see the more detailed documentation at Running Jenkins on Java 11.

Developer guidelines

For developers involved in Jenkins development, you can find details on developing and testing Jenkins to run on Java 11 on the Java 11 Developer Guidelines.

This resource regroups the modifications which might need to be done in order to validate the compatibility of plugins for Java 11.

What’s next

Even though this is a big achievement, we still have work to do.

Our first priority is adding Java 11 support to JenkinsFile Runner project. From there, we will move on to port Java 11 support to the Jenkins X project and the Evergreen project.

So, even if this is a big deal to us, this is not the end of the story. It is a major step that will benefit users, developers, and members of the Jenkins community.

About the Author
Adrien Lecharpentier

Adrien is a Jenkins user and plugins developer since 2009 and maintains several plugins. Currently, Adrien works at CloudBees as a software engineer, involved in open-source code development.