I see from presentation slides, on the Apache Tomcat site, that Java 11 is in the plans but it makes reference to a Java 11 JRE, which isn't available. How will Tomcat handle not having a JRE available to install?
-
JRE is not unavailable. You can always create it yourself with *jlink* and share it so others can download it. – ZhekaKozlov Sep 29 '18 at 13:37
-
@ZhekaKozlov it's not a JRE, but a custom runtime environment with a needed sub set of modules. – Rostislav Krasny Sep 29 '18 at 19:00
-
@RostislavKrasny What's the difference? – ZhekaKozlov Sep 30 '18 at 03:52
-
@ZhekaKozlov It's not for general use and it may include only a sub set of Java API. – Rostislav Krasny Sep 30 '18 at 09:21
-
@RostislavKrasny Why isn't it for general use? What's the problem to include a full set? – ZhekaKozlov Sep 30 '18 at 11:18
-
@ZhekaKozlov You're welcome to try it. Also compare tools you have in the `bin` directory of a regular JRE 8 and of your custom "jre". – Rostislav Krasny Sep 30 '18 at 12:17
-
@RostislavKrasny JRE 8 has a lot of deprecated tools that were removed in Java 11 – ZhekaKozlov Sep 30 '18 at 12:49
-
@ZhekaKozlov Not all missing tools were removed in JDK 11. For example rmid, rmiregistry, kinit, klist, ktab, etc. – Rostislav Krasny Sep 30 '18 at 13:26
-
@RostislavKrasny The tools you listed are not missing in JDK 11. Run `jlink --add-modules java.se --output jre11` and you will see them in `jre11/bin/` – ZhekaKozlov Sep 30 '18 at 13:55
4 Answers
tl;dr
Just download and use a JDK, obtained from any of several vendors. But be sure to read the licensing (in particular, Oracle changed the terms to their Oracle-branded JDK).
FYI: I have been running:
- Tomcat 9.0.14 on Java 11.0.2 using Zulu product from Azul Systems
- Tomcat 9.0.26 on Java 13 from AdoptOpenJDK
…on macOS Mojave without a problem.
No more JRE†, just JDK
Oracle no longer intends for end-users to be installing a JRE or a JDK. Java Applets in a browser and Java Web Start app delivery are both being phased out, leaving the end-user with no need for a JRE. Java-based apps are expected to bundle their own Java implementation. The only folks consciously installing a JDK will be developers & server-side sysadmins.
Important:
- Understand clearly the nature of the OpenJDK project, as explained in Wikipedia
- Read the white paper Java Is Still Free, authored by key members of the Java community.
Here is a flowchart diagram that may help you finding and deciding amongst the various vendors providing a Java 11 implementation.
†If you insist on a JRE rather than JDK, nose around on AdoptOpenJDK.net under their "Other Platforms" link. See Answer by matson kepson. But I suggest just using the JDK.

- 303,325
- 100
- 852
- 1,154
-
AdoptOpenJDK has since became Eclipse Temurin: https://adoptium.net/ – berezovskyi Jan 18 '22 at 17:33
Just use a JDK.
JRE is the minimum requirement. JDK is a superset of it.
See also a thread from tomcat-users mailing list.

- 3,854
- 1
- 13
- 21
-
1A comment in the tomcat-users thread you linked to is worth noting: _You need to point the installer to the root of the jdk-11 install. If you install the Oracle JDK, the installer will find it via the registry. If you use OpenJDK you'll need to select the root of the install (a.k.a. JAVA_HOME) yourself._ – skomisa Sep 30 '18 at 15:58
-
We still have a need for Java Web Start on the client. It was relatively simple for our users all they needed was to make sure that a particular released level of the JRE was installed (from Java,com) and then they just needed to connect to our installed server and the application would appear in the web start window. – SAHild Oct 01 '18 at 13:46
-
Now we need to get a web start alternative which will need to be downloaded and installed and we need to create and supply the runtime that is downloaded (probably bundling together). – SAHild Oct 01 '18 at 13:54
-
@SAHild See the flowchart in [my Answer](https://stackoverflow.com/a/54737781/642706) for tools for Java Modularization to bundle a JVM with your app. – Basil Bourque Mar 27 '19 at 01:52
-
For me it was important, that I could just switch to JDK, even if the Tomcat installer asks for JRE. I was searching for the OpenJdk/jre subfolder as in Java 8 but that didn't exist. But the Tomcat-9-Installer was fine with the base OpenJDK-11 folder :-) – leole Jul 06 '21 at 06:08
AdoptOpenJDK.net
Look at AdoptOpenJDK project website, for Java builds based on OpenJDK.
- Download the latest JRE and JDK:
https://adoptopenjdk.net - For source code:
https://github.com/AdoptOpenJDK/openjdk-jdk11
I have used their night builds to workaround the problem of missing JRE in JDK package https://adoptopenjdk.net/nightly.html?variant=openjdk11
BUT as of now, they have a problem with JRE build please search for the builds prior to 11/9/2018 until they fix this problem. Link to bug https://github.com/AdoptOpenJDK/openjdk-build/issues/796

- 303,325
- 100
- 852
- 1,154

- 2,543
- 19
- 24
-
3You can also find it on the main download at https://adoptopenjdk.net/ by picking your version and then choosing "Other platforms". After you select your platform, there will be separate links to the JRE and JDK. This way you are dealing with a stable release rather than a nightly build – ldkronos Jan 30 '19 at 13:13
I might be coming a bit late to this thread, but I will mention that I had no problem running Tomcat 9 with Adopt OpenJDK 11 and its Hotspot choice.
Also, Tomcat 9's default implementation relies on log4j2. This can be an issue if you are migrating a lot of applications in a short time. I was able to eventually make Tomcat9/Java11 work with log4j 1.2.xx so that I could delay a migration of the logging mechanisms. Basically, I added the log4j JAR and log4j.xml from my Java 8 / Tomcat 8 implementation and then fiddled with settings, but I am not 100% certain of all the changes I did. Hopefully, this info even if incomplete will help those in a similar situation, as there is not much that can be found as to how to make it work.

- 1
- 3
-
Please don't ask questions in answers. Ask your own question by clicking the link at the top of the page. – Greenonline Aug 09 '20 at 01:32
-
As of December 2021 using log4j 1.x or old versions of log4j2 is quite a bad idea due to "log4shell". – berezovskyi Jan 18 '22 at 17:31