Considering use of Amazon Corretto, the new openjdk jvm, especially with ColdFusion
Note: This blog post is from 2018. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.As I posted earlier today, there are big changes afoot in the Java world, about production (not just "commercial") use of Java going forward. This is big news, as it is for anyone using Java 8 or 11 for production purposes.
But here's some good news: Amazon has recently released a new free JVM (java virtual machine) implementation based on the OpenJDK specification, called Corretto. In this post, I want to share some news about it. (Off the bat, let me tell my friends on any Linux flavor other than Amazon Linux 2, this is not yet available to you. For now it is only available for Amazon Linux 2 as well as Windows, MacOS, and as a docker image. Other Linux flavors are due in Q1 2019.)
For much more, read on.
Update in Jan 2019: This is no longer an option for CF folks to consider, as Adobe announced both that they have licensed Oracle Java for production use by those using CF, and they clarified that they will NOT be adding support for any OpenJDK implementations. I will leave this post and the rest, for non-CF users and for posterity.
Why Corretto may be worth considering
First, why is this new openJDK implementation potentially important? As I explained in my previous post,, Oracle has announced that they will end free updates/security patches for Java 8 if you use it for production after January 2019. After that, you must pay them for support/updates, or find other alternatives. And Oracle's Java 11 JVM is NOT licensed for any PRODUCTION use, without paying for it.
Those are big changes, when use of the Oracle JDK has been free for prod use for more than two decades. Java 11 will NOT be. And while there has always been an end to public updates some time after the end of life of a JVM, the thing is that Java 8 is still going to be publicly supported after Jan 2019--just NOT if you use it for production use. (If you're a non-profit or other "non-commercial" org, see my previous post on the discussion of how the term "commercial" has come up in discussions relative to this matter, but how it is NOT limited to only "commercial" use.)
The good news about Corretto is that (besides being free), Amazon has committed to continue updates to Corretto 8 to June 2023!. And as for Corretto 11, due in Q1 2019, that would be supported to 2024. Those are much better timeframes, especially for server folks who are often slow to update their JVM versions (even if they may keep them patched).
(And sure, there are other openjdk and jvm implementations, but a key question is how long they will offer free production support/updates. More on other openjdk implementations below.)
Tell me more about Amazon Corretto (as of Nov 15 2018)
So about the Corretto as it stands today (the day I write this, or I may update this in the future as things change), note a few key things:
- Again, for now there is ONLY a Java 8 implementation. A Java 11 implementation is planned for q1 2019
- Again, for now, it's only available for Amazon Linux 2, Windows, MacOS, and as a docker image (so no, for now, no Ubuntu or Redhat, though those are due in Q1 2019, per this blog post)
- For now, even this jdk 8 is shown as in "preview" mode. The faq suggests this is more about the relatively limited set of OS's that it supports for now, and the blog post indicates those will come with the "general availability" release in Q1 2019. I don't see anything suggesting that the preview is not production-ready, but I welcome clarifications
As for the licensing of Corretto, it's GPLv2 with CPE (GNU Public License version 2 with the Class Path Exception). There is no indication in the license of any limitation for commercial/prod use, nor any mention of limitations of support/updates if used for commercial/prod purposes, as with the Oracle JVM post Jan 2019.
As for once you implement it, such as via the Windows installer, I will note that (thankfully), it does NOT implement as "public jre" (it does not become what you see at the command line if you type "java", unless YOU change your environment variables to point to it yourself. Also, note that both a jre and a jdk subfolder are implemented in the Windows install.
Finding still more details on Coretto, from Amazon
For more on Corretto (including why Amazon created it and is supporting/promoting it, how it differs from the openjdk spec, the specific open source license it uses, how to install it for Windows and Mac, and lots more), see:
- Amazon's main page on Corretto
- Amazon's main blog post (currently) about it
- Amazon's Corretto FAQ page
- Amazon's Corretto docs
Also, FWIW, note this is NOT to be confused with the longer-existing Amazon "SDK for Java", discussed here and here.
You mentioned other openJDK implementations?
Yep, for other openJDK implementations, see for instance:
- The Java OpenJDK project for Java 8 and for Java 11 (also see here)
- AdoptOpenJDK
- Azul Zulu OpenJDK
And you can find still more options listed here.
As for CF, I have tested Corretto on CF2016, and so far so good
For my CF readers, I wanted to share that my limited testing of Corretto with CF2016 did "work", though to be clear, this new JVM is not yet supported by Adobe. And I would love to hear more from anyone that does further testing.
After changing CF to use Corretto (more on doing that, below), the CF admin "settings summary" page reports under "jvm details" that the "java vm name" is "OpenJDK 64-Bit Server VM", though the "java vm vendor" is still listed as "Oracle Corporation" (not Amazon).
You may wonder why I don't mention CF2018 (which I've written more about, if you're interested). I mentioned above that there is currently a Corretto release only for Java 8.
Well, CF2018 currently runs on Java 10, including leveraging features and configuration unique to Java 10 and above. (And since Java 10 also has a short life, I expect Adobe to come out soon with support of Java 11 for CF2018, if not also for CF2016.) Again Amazon does plan a Corretto 11 in Q1 2019, which would be supported to 2024.
Until we hear more from Adobe about their plans for handling the Oracle licensing/support issue for Java beyond Jan 2019 (such as if they will be licensing the support for us), it just seems that Corretto or other JVM alternatives may be a solution that some are forced to consider.
And even after Adobe may resolve the Java licensing issue, some users may be intrigued to consider this option, though again it is not (as yet) a JVM that Adobe supports for use with CF.
How would one change CF to use that new JVM?
I don't want this article to get bogged down in the technical details of how to change the CF JVM, though I will say it's pretty easy (and easily reverted, if you are careful).
That said, I have in the past written a substantial blog post on about a dozen things that can go wrong when updating the CF JVM, and how to solve them. And toward the bottom of that post I do point to resources (blogs and videos) that walk through the process (with varying levels of detail, for better or worse).
But finally note that I can help do the change (in less than 15 mins), and/or help you recover from problems if you try it yourself, by way of my remote consulting services.
Hope all that's helpful. And be careful out there. :-)
For more content like this from Charlie Arehart:Need more help with problems?
- Signup to get his blog posts by email:
- Follow his blog RSS feed
- View the rest of his blog posts
- View his blog posts on the Adobe CF portal
- If you may prefer direct help, rather than digging around here/elsewhere or via comments, he can help via his online consulting services
- See that page for more on how he can help a) over the web, safely and securely, b) usually very quickly, c) teaching you along the way, and d) with satisfaction guaranteed
I've never done such a move of comments before, and I hope Sean won't mind, but as his comments were really about that rather than Corretto (the focus of this post), it just made more sense to me, and I hope to readers.
The ones I moved now appear after the first two that initially were there, also between him and me.
So are you perhaps meaning to report here something more specific, or a different version?
When AWS releases a Coretto for Java 11, and Adobe certifies CF for Java 11 (and preferably, openjdk 11), then we can see how CF 2018 fares on Coretto.