Is Java Free ?
Recently I had to investigate for my client again whether they had to pay for Java SE in their company as they use Java applications in their organisation.
Six months earlier, I found in an FAQ on the Java.com site that mentioned the use of the Java JRE (Java Runtime Environment) is ALWAYS free, and there are no problems with making copies and distributing it to multiple machines to run Java applications.
This was the link:
And this was an excerpt from around May 2018.
Does the license agreement change for each release?
Sometimes. The license might change from release to release. The general license grants have remained fairly constant, but the terms may change between releases without notice. It is best to review the terms of each release's license prior to use.
Do I need to purchase a license if I need the Java Runtime Environment for multiple users in my company?
No, you may make unlimited copies for internal use for the purpose of running applications on Java-enabled general purpose desktop computers and servers.
Since we don’t develop Java applications but only use applications from our suppliers, we only download and use the Java Runtime Environment, which is the default download from www.java.com. According to the excerpt above, this logically means that we DO NOT HAVE TO PAY to use the Java Runtime Environment.
Six months ago, I thought I had finished my research and had my answer.
The Release of Oracle Java SE 11
Since the release of Java SE 11 in September 2018, Oracle now provides a JDK under the open source GNU General Public License v2, with the Classpath Exception (GPLv2+CPE) and a JDK under a commercial license. Versions of Java prior to Java SE 11 was released under the BCL license which has both free and commercial terms.
Oracle's open source version of the JDK is Oracle Open JDK. From Oracle Open JDK version 11 and upwards, functionally it will be identical to the Oracle JDK (Java SE 11) equivalent versions, with only some slight differences.
And from Java SE 11 onwards, you cannot download the JRE separately. (I didn’t deal with Java SE 9 or Java SE 10 so I don’t know if they included a separate download for the JRE, but those versions were obsoleted by Java SE 11, which is Oracle’s LTR (Long Term Release) version.
The link that had information on the Java Runtime Environment now DO NOT MENTION anything about the Java Runtime Environment (https://java.com/en/download/faq/distribution.xml)
End of Public Updates for Java SE 8
Since the release of Java SE 11, Oracle has announced that public updates for Java SE 8 will remain available for individual personal use through to at least the end of 2020 but will not be available for business or commercial or production use without a commercial license after January 2019.
Is Java SE 11 Still Free But You Only Pay After the End of it's Public Updates Date?
The below was an existing Java SE Release/Support Roadmap which on the surface seems like you don’t need to pay to use Java SE 11 (or later versions). You can interpret it as “just keep upgrading by the End of Public Updates date, and you will be on the latest versions and latest updates for free”.
However, Oracle seemed to have updated the page now:
So now it is more clear and there is a Premier Support column instead of End of Public updates.
Oracle Java SE 11 (or Oracle JDK 11) is NOT free.
Use the Open JDK for Free
After the dust have settled and Oracle have updated the information on its site to be less confusing, it’s clear now that if you want to use Java for free, since the release of Java SE 11, you will need to use Open JDK or remain in the current version of Java SE 8 and not get any updates including security updates.
Oracle, in fact, recommends users move to their Oracle Open JDK 11 if they want to keep using Java for free. Only pay a subscription to use Java SE 11 (and later versions) if you want technical support and other benefits.
To make things slightly complicated, there are a few Open JDK implementations in existence.
There is Oracle’s own implementation :
AdoptOpen JDK’s implementation :
There are others as well which I haven’t listed, and some providers seem to be adding paid technical support options to the Open JDK builds they release.
Will Going to Open JDK solve all Problems?
Going to OpenJDK will not solve all your problems, but it will go a long way towards reducing your license costs.
You will need to start testing that your current version of Java application will work with Open JDK if it requires Java JRE 8 or Java SE 8. From version 11 onwards, Java SE 11 and Open JDK 11 (at least Oracle’s implementation) is functionally the same. But you should still do your testing anyway.
How you do this is to uninstall Java from your machine, and install the Open JDK version of the equivalent Java SE version. It most cases, it will be version 8. However, I strongly recommend you test it out with Open JDK 11 first, so that if it is compatible with that version, you don’t have to worry about upgrading the version again later.
Installing Open JDK involves a few steps as most releases require you to extract the files and copy it to a folder manually. You need to manually set environment variables for JAVA_HOME and include the path to the java bin directories. If you have a software packaging and deployment tool, this can be packaged and pushed out with the settings applied automatically.
I found in my testing so far that our desktop Java applications are compatible with the Open JDK versions.
If you have Java Applications that are run from web sites directly then that will require the Java Web Start module which comes with the Java JRE 8. Open JDK does not come with Java Web Start, even Open JDK 8. There is a Java Web Start implementation based on Open JDK called IcedTea. This is available for Linux but a Windows port is hard to come by. I still haven’t been able to get a copy of a Windows compiled version. I’ve seen source codes for the Windows version of the plug-in on Github, but you need to actually download the source code and compile it yourself. I would say that to protect your organisation’s interests, and you are running Windows or Mac OS, you would be better off just to license those machines that require Java Web Start for the Java SE 8 updates in the short term until the application vendor has moved away from Java Web Start.
Oracle has deprecated the Java Web Start and you will not even see it in their Java SE 11 version.
Staying on the current Java SE 8 (or JRE) for free with no updates
It is still free if you are happy to stay on the same version of Java 8 JRE and don’t worry about getting any more security updates. For personal use, this may not be an issue as not many individuals using this for personal use, have to comply with security protocols. For enterprises, this is a big issue. To stay compliant, they must be able to have security updates to the Java SE 8 product. Whether or not they actually roll out the security updates or allow the Java Runtime Environment to download updates is another matter.
Ask the software vendor for any updated versions of their Java Applications
Oracle has recommendations for software developers on how to distribute Java runtime without the need for users to provide a local copy. In the future, most if not all Java applications delivered via the web or as a desktop application will no longer require users to have to download a local copy of the Java runtime or Java SE.
If the Java runtime is packaged with the application, end users can remove the locally installed Java SE or Java runtime environment.
Paying a license for every machine that has a Java RTE installed on it is not a wise move. You will end up paying this, year in year out, until someone stops and evaluate the whole situation in your company (and no, don’t blame Oracle. Their license usage terms are quite clear now, whether you agree with it or not).
When companies are using Java applications developed by a third party, you should see if the supplier has an updated version that does not require you to download a Java runtime or Java SE on your machine i.e. they are following Oracle’s recommendation for packaging Java with their application.
If you are using a desktop Java application, consider replacing the current Java SE or Java JRE 8 runtime installed with the Open JDK version.
If using a Java Web application and the vendor does not have a new solution, then obviously you have no choice but to stick with Oracle’s Java 8 SE and get a subscription to get Java SE 8 updates (unless you can get the open source Java Web Start module - Iced Tea, running on your platform).
As vendors follow Oracle’s recommended practise of supplying the necessary Java runtimes with their application’s packages, users will no longer have to worry about downloading Java separately to run the application. What this would mean is you pay your vendor for the use of their application, and all the licensing of using Java etc.. is of no concern to you. That’s between the software vendor and Oracle if they are using Java SE.
That’s the way it should have been.
© 2018 sengstar2005