[Looking for Charlie's main web site?]

Does Oracle's change regarding Java apply only to "commercial" use, or to ANY production use?

Note: This blog post is from 2019. 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.
Does Oracle's change regarding Java and limiting who can use what for free apply only to "commercial" users (as in "corporate" or "business" use), or do the limitations apply to ANY production use (including non-"commercial" orgs like non-profits, agencies, schools, etc.)? I offer here my understanding based on research of Oracle's own resources.

Bottom line: these limitations DO apply to ANY PRODUCTION use, not just "commercial" use, definitely regarding Java 11, and seemingly clearly regarding Java 8.

For more clarification, read on.

This is a 3rd post of mine in a series regarding this matter, of Oracle's changed stance (in 2018) regarding a) who can use for free their Java 8 updates released after Jan 2019 and b) who can use for free their Java 11 JVM (at all). See the first and second for more on the issues (as well as Java 9 and 10) and some options for those facing this challenge.

I also discuss in those posts the option of "openJDK" implementations which, including Oracle's, clearly ARE permitted to be used for production purposes, and for which the limitations discussed here do not apply. More on that in a moment.

In this post, I elaborate on this question of just WHO is impacted by the change, pointing to specific Oracle resources which clarify things.

As for Oracle's Java 11 JDK, the limitation is obvious

First, regarding Oracle's Java 11 JDK, it's very obvious. (And when I use the term "JDK" here, I'm using that in contrast to the OpenJDK implementation mentioned above, not in distinction from the JRE.)

When you go to the page to download Java 11, it offers a link to Oracle's Java 11 license page (which you agree to when downloading it). That license page clearly says: "You may not" "use the Programs for any data processing or any commercial, production, or internal business purposes other than developing, testing, prototyping, and demonstrating your Application".

Note there that the phrasing does not say "commercial AND production", but says "commercial, production, or internal business purposes". So it clearly precludes that JVM for any production use, regardless of whether you're specifically a "commercial/corporate" entity.

And it goes on to say that if you want to use it for such purposes, "you must obtain from Oracle or an Oracle reseller a valid Programs license under a separate agreement permitting such use". So that refers to licensing it, by paying Oracle for it.

(Again, as for using the Java 11 OpenJDK for free for production, that IS allowed per its own separate license: the GNU General Public license, as pointed to on the OpenJDK 11 download page, and which has no such limitations for production use.)

As for Java 8, the limitation is LESS obvious, but still seems to apply to ANY production use

Moving on to Java 8 and whether Oracle's updates for that are free for production use after Jan 2019, that too is made seemingly clear in Oracle references. But it was initially confusing for me, for a couple of reasons.

First, when I wrote my initial post in this series, I had found only the Oracle blog post about the change about Java 8 from Jan 2018, which refers to the change (regarding Java 8 updates after Jan 2019) as their being available only for "personal (non-corporate) use". That phrase "non-corporate" left me (and others) wondering.

Second, even if one follows the thread through Oracle's licensing info for Java 8, there's still an indication of it applying to "commercial" users, but if you read things carefully, you see that's not seemingly limited to "corporate" users but again to ANY production use. Let me explain.

If you go to the front page of where one would download Java 8, there's a box highlighting this "End of Public Updates for Oracle JDK 8". And that points to Oracle Java SE Support Roadmap, which also has a section on "End of Public Updates of Java SE 8".

That section of the roadmap clarifies that "Oracle will continue to provide free public updates and auto updates of Java SE 8, until >at least the end of December 2020 for Personal Users, and January 2019 for Commercial Users". (Emphasis mine.)

Here again, it's that phrase, "commercial users" that could ALSO easily confuse people. Most would read that as meaning "corporate" (like was said in the Oracle Jan 2018 blog post mentioned above).

But third and most important, earlier in that very roadmap document, the definition of "commercial user" is made clear: "Commercial Users are entities other than Oracle Customers that use Java SE for free for business, commercial or production purposes as part of a Java application delivered by a third party or developed internally". Again, the underlining emphasis is mine.

Note that it says, "business, commercial or production", so the OR seems clearly to mean not JUST "commercial" but also production use by any kind of entity.

(And as for the phrase, "as part of a java application", lest anyone think that somehow gives them an out, it seems that should read as *REGARDLESS OF WHETHER* the app is "delivered by a 3rd party or developed internally". In other words, it seems further to cover ALL production use.)

At least that's how I read things. Of course, "I am not a lawyer", so I leave all this for your own consideration.

"I thought Java had "commercial features" and only THOSE had to be 'licensed'?"

That is indeed another source of some confusion on this whole question of what is meant by "commercial" use.

Prior to Oracle Java 11, there were in fact certain separate features within the JVM, such as Flight Recorder and Mission Control, as identified in a page introducing these and other features.

And use of those features were indeed limited per the Java license (which applied to Oracle Java prior to 11), called the Oracle "Binary Code License" (BCL) for Java (and which was what one agreed to upon downloading Java before Java 11).

FWIW, the Java 11 license (linked to above in the Java 11 section and which one agrees to upon downloading it) is technically known as the Oracle "Technology Network License Agreement" (TCL) for Java.

To be clear, Oracle has removed those previously "commmercial" features from their Java 11 JDK implementation, and released them as open source.


So again, bottom line: if you are using Java for production purposes (whether "commercial" or not), the new limitations apply to you. You cannot use Oracle's Java 8 updates beyond Jan 2019 for free, and you cannot use Oracle's Java 11 (other than the openJDK implementation) for free. In both cases, you must license those from Oracle (or use an OpenJDK implementation). Again, see my previous (first and second) blog posts in this series, on those alternatives.

If you see things differently, or find other or better information to clarify all this, feel free to share it here.

For more content like this from Charlie Arehart: Need more help with problems?
  • 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
Fortunately there's a proven, global player in Java/OpenJDK support- Azul Zulu. None of the channel conflict, superior and timely SLA support, long term and medium term support of virtually all Java versions in deployment.
Chris, I mentioned in this post that I had indeed talked about openjdk implementations (including azul) in other posts. Did you check that out? I'll assume not.

So your comment comes off instead as trolling a bit, like you went looking for any post that might talk about Oracle Java and licensing issues, and if it didn't mention Azul, you wanted to drop that in to educate the blogger and readers.

I appreciate enthusiasm for a product (you'll see most of mine reflect that, for another product), but really you should read a post more carefully before doing that.

And if you may wonder which of the post (that l linked to above) is one where I'd mentioned Azul, it was:


Granted, the focus of that post was to point out Corretto--because of the duration of support for Java 8 and 11. I did though mention Azul and others, and linked to them, so that interested readers who wanted to could explore those further.
Old, but good article - thanks for this! Still, you didn't address 'JRE' at all; do you have ideas on that? Millions of workstations, business & personal, use only the JRE component, obviously to display whatever web sites require latest Java, not for 'developing.' Yet, we still get the wonderful warning, before installing JRE update "... blah blah License agreement terms have changed."
# Posted By Jeff | 9/7/22 9:05 AM
Jeff, I didn't mention the JRE because as far as I am/was aware, there's no difference regarding that distinction of JRE vs JDK, with regard to licensing (the focus of this Jan 2019 post).

Indeed, as you may know, Oracle no longer packages a separate "JRE" installer for Java 11 and above. It does for 8, which was the last LTS release before 8. (And both 8 and 11 are still supported LTS releases as of now in 2022, as is 17 which came out in late 2020.)

If one tried to get a JRE (or goes to java.com to "download java"), what they get is the 8 JRE. And yes, that 8 JRE is subject to the same licensing requirement for production use, as indicated in the large banner shown on the next page after you click that "download java", https://www.java.com...).

Now, FWIW, the licensing has changed YET AGAIN since back then in early 2019. Java 17 is back to being free for production (but 11 is not). For more, see this Sept 2021 blog post:

I suppose I could and should have created a new blog post for that. Hard to keep up with the merry-go-round.

So given all I said, what is you concluding stance on things? Do you have the info you need?
My interpretation is that the word "production" specifically means "making a product". What is a product? It's something that gets sold. Nobody outside software companies calls the act of making software "production". Hobbyists don't call it "production" when they make software. The term production, in the context of software, implies the making of software for the purpose of selling it. Not making software for the purpose of giving it away for free. So if I'm going to write software that I intend to sell, then I need to buy the JDK. They could have outright stated that it must have a paid licensed "for all software you compile, except for software which you intend to run only on your own computer and never distribute to anybody else". But it doesn't say that. Instead they are very careful in how they word it to say it ONLY needs a paid license if you want to use it for "business, commercial or production purposes". And again it very clearly uses the term "commerical users" to refer to the type of users. What does the word "commercial" mean? It literally means something that pertains to commerce, which is buying and selling of goods. No hobbyist who uses a particular program would ever call themselves a "commercial user" of that software. So if you are not selling the software you are writing, you are not using it for commerce, so you are not a commercial user. Period. No question or lack of clarity about it.

In fact, I think Oracle intentionally made their legal terms as clear as possible. So you just need to read it in plain English to realize who actually needs to pay for OracleJDK. Paying for it is only for people or companies using OracleJDK to write software they will sell. I personally have actually already distributed a number of programs that I've written and compiled with OracleJDK 8.x and distributed them absolutely for free, without any fear in the world of being sued, because I used common sense, and realized what the license agreement means. Anybody who tries to make it sound more oppressive than it actually is, clearly has a bone to pick with Oracle, and are just trying to find an excuse to accuse them of using unfair licensing practices.

I actually think that Oracle is very supportive of the programming hobby, because they do NOT specifically limit the the use of software compiled with OracleJDK to be used only by the person who compiled it and never distributed. They clearly realize that the programming hobby involves not only using the programs that you make yourself, but also sharing those programs with others. Just like any hobby (wood working for example, I'm sure that people who like to carve wood also would give their carvings to their friends, to share the joy of their hobby with others). And Oracle seems to realize this, because it seems quite clear to me that their license clearly is intended to allow hobby programmers to share the programs they make with others, as long as it's given to others for free, and not sold.
# Posted By Videogamer555 | 5/16/24 6:54 AM
Which "license" are you referring to. You make some bold statements, as if I or others have misconstrued "the license".

As I mentioned in my previous comment here (on this post from 2019), "the license" used for more recent Java versions has changed since what I was writing.

And to be clear, I had no "bone to pick" with anyone including oracle. We (in the IT community--the audience of my post) were coming to grips with the then-recently changed license. Mine was of many such posts of that era.

It does seem kind of out of left field for you to drop your comment here. Not sure why you're feeling it was important to make this point here. Are you dropping it on other similar posts? I'll leave it for others to consider.
Copyright ©2024 Charlie Arehart
Carehart Logo
BlogCFC was created by Raymond Camden. This blog is running version 5.005.
(Want to validate the html in this page?)

Managed Hosting Services provided by
Managed Dedicated Hosting