This thread is to organize information about the different JDKs out there and the advantages and drawbacks of each. If you haven’t heard. starting in Jan 2019, Oracle Java 8 will stop receiving updates of any kind and Oracle Java 10+ will no longer be free for commercial use. Ouch! Not to worry, there’s a growing list of Java distros out there to choose from which come in varying prices and with varying levels of support.
So, first things first. Unlike Adobe, Lucee has never officially certified certain versions of Java as working with Lucee, nor have we ever supported your Java installation specifically. For the most part, Lucee is provided as a JVM-based application server and it’s up to you to install and manage Java on your machine. That said:
- The Daemon Docker images as well as the Ortus Docker images use the OpenJDK base image
- The installers built by VivioTech/@Jordan_Michaels bundle Oracle Java (I think)
Here is an overview of the Java distros available to you. This is a working document, so please feel free to point out anything I’ve missed or gotten incorrect.
Oracle is the owner of Java, even though it is open source, and currently offers all versions of java for free. Starting in January 2019 (very soon!) things will change
- Java 8 will stop receiving patches and updates of any sort (for free at least)
- Java 10+ will no longer be free for commercial use. You will need to pay.
- Oracle will offer LTS releases, but only for their paying customers.
TL; DR: Oracle JDK is top dog and will have good support, but only if you have deep pockets.
OpenJDK is a separate organization from Oracle, but the code base is primarily contributed to by Oracle. Pretty much all other Java providers are either building the OpenJDK code or a close fork of it. Oracle even has their own free builds of OpenJDK. It used to lack some enterprise features like Mission Control, but this gap has been mostly closed in the latest version. Oracle will only be contributing to each OpenJDK release for 6 months, and at that point it will be up to community contributors such as Redhat to backport patches into it.
- OpenJDK 8 will stop receiving patches and updates from Oracle after Jan 2019.
- There will only be a 6 month support window on every version
- OpenJDK will always be free
- OpenJDK has no installers and must be manually configured
TL; DR; If you have no money, don’t care about long term support, and always upgrade to the newest versions of Java, this might work great for you.
IBM Java has been around for a while. it is optimized for IBM’s tools that bundle their flavor of java and “The biggest difference between the Oracle and IBM java runtimes is that they have independent Java Virtual Machine (JVM) and Just In Time (JIT) compiler implementations.” (See second link below)
- IBM Java is free to use
- IBM Java offers optional paid support
- IBM Java differs from the Oracle and OpenJDK-based distros in some ways
TL;DR: If you’re willing to test your app and make sure everything works, IBM Java might ba good free option, but I’m unclear on how much support you get if you’re not paying.
Azul offers several versions of OpenJDK-based builds, including Zulu, Zulu Enterprise, Zing, and Zulu Embedded. Each comes with a different combination of cost and support.
- Zulu is free but doesn’t appear to have any support
- Zulu Enterprise costs some solid bling but has long term support
- Zing is a custom JVM as well which costs money
- Zulu has nice installers which mimic the registry and env vars of Oracle.
TL; DR: If you can afford to pay for support, Azul may be a good option, but the free versions don’t seem to have a noticeable benefit other than the installers.
Corretto is the new kid in the game. It is backed by Amazon and will become the default Java builds on AWS. It will be free and have LTS releases. Corretto is based on the OpenJDK builds as well.
- Completely free
- Will backport fixes and updates to Java 8 until 2023
- Provides LTS Releases
- ONLY JDK 8 support is released so far. JDK 11 will come in “early 2019”
- Corretto has installers, but they’re still a little rough around the edges
More Reading: https://aws.amazon.com/corretto/faqs/#support
TL;DR: If long term support and completely free sound good, Corretto sounds like a fantastic choice so long as you can wait to move to Java 11.
AdoptOpenJDK is another offering that creates 32/64 bit builds of OpenJDK for free, offering LTS releases. AdoptOpenJDK offers builds with the Hotspot JVM as well as the OpenJ9 JVM which is from Eclipse. They have builds of OpenJDK 8-11 available in GitHub repos. One of the differences of AdoptOpenJDK is they do not maintain their own fork of OpenJDK, but instead only provide builds from the main OpenJDK repos.
- Completely Free
- Provides builds of the official OpenJDK repos.
- Does not patch themselves, but uses the community-maintained OpenJDK.
- Not backed by a large/well-known company
- No installers, so manual installation needed
More Reading: https://adoptopenjdk.net/
TL;DR: This looks like a solid free option with support and many options, but not as polished with few installers and doesn’t provide paid support directly.