Summary
If you need to have java in your production servers for free, your have two options
#1 OpenJdk
The OpenJDK is the open source reference implementation of the Java SE Specification, but it is only the source code https://github.com/openjdk
Binary distributions are provided by different vendors for a number of supported platforms.
One of them is https://jdk.java.net/java-se-ri/19 which is maintained by Oracle:
Source: https://whichjdk.com
#2 JDK Customized by Third Parties
Licences OTN vs BCL
Oracle JDK 8 (aka 1.8) no longer uses BCL (Binary Code License). From April 16, 2019, Oracle JDK 8 uses the OTN (Oracle Technology Network) license, which requires you to create an Oracle account to download JDK 8 and payment!!
BCL = Oracle Binary Code License
- You can use it, but you can't modify it
- You agree not to sue Oracle if anything goes wrong
- You can redistribute/publish it (so that you can sell products with Java embedded), but if you do, you agree to indemnify Oracle; so if someone sues you, you can't drag Oracle into it.
It's really just there to protect Oracle's intellectual property and to shield them from being sued when bugs are found.
source: https://www.quora.com/In-short-what-does-the-Oracle-Binary-Code-License-Agreement-for-Java-SE-actually-say-or-prohibit/answer/Jon-Harley
As a summary: FREE with risks and without any fault of Oracle
OTN = Oracle Technology Network License
As a summary: Opposite to BCL and FREE just for development in your laptop. For enterprises, you must PAY
OpenJDK and Oracle JDK
Both OpenJDK and Oracle JDK are created and maintained currently by Oracle only.
OpenJDK and Oracle JDK are implementations of the same Java specification passed the TCK (Java Technology Certification Kit).
Most of the vendors of JDK are written on top of OpenJDK by doing a few tweaks to [mostly to replace licensed proprietary parts / replace with more high-performance items that only work on specific OS] components without breaking the TCK compatibility.
Source: Differences between Oracle JDK and OpenJDK
Free official options
Here I will list and keep updated the official links, ready to download the most used java versions
Oracle Java 1.4, 5, 6 and 7 (Deprecated)
Oracle does not show any message related to license changes for Java 1.4, 5, 6 and 7 downloads. So we can use them for development and production deployment, accepting issues and security problems because these versions are so ancient!!
Legacy versions prior to 7, does not have and will not have any update. Maybe a sales contact could be a solution if your have a Legacy Systems running over this java old versions.
Oracle Java 8 update 202
Just Java SE 8 JDK 8u202 and earlier versions are free for development and production deployment. You can download it from:
Openjdk 8 (Deprecated)
OpenJDK is a ORACLE initiative. More details here: https://adoptopenjdk.net/
compressed mode
You can download the latest v8 release from here. Latest version:
Follow this to download using curl
install mode
apt-get install openjdk-8-jre (just run apps)
apt-get install openjdk-8-jdk (develop and run)
From https://openjdk.java.net/install/
Openjdk 11
apt-get update
apt-get install openjdk-11-jdk
Openjdk 17
Openjdk 19
Openjdk 21
Free From Trusted Third Parties
Zulu Community (Java 6,7,8,11,13,14,15)
Amazon Corretto (Java 11)
Eclipse OpenJ9
More third parties
The following implementations, listed in alphabetical order, are open source and free to use:
- AdoptOpenJDK
- Azul Zulu
- Bck2Brwsr
- CACAO
- Codename One
- DoppioJVM
- GraalVM CE
- HaikuVM
- HotSpot
- Jamiga
- JamVM
- Jelatine JVM
- Jikes RVM (Jikes Research Virtual Machine)
- JVM.go
- leJOS
- Maxine
- Multi-OS Engine
- RopeVM
- uJVM
NON-FREE options
You should pay for these versions but in return you will have a lot of features suported by Oracle or another third parties
Oracle Java
https://www.oracle.com/java/technologies/downloads/
Oracle Java 8 update 221
Since the java 8 update at April 16, 2019 8u221, all versions and updates for (java 8,9,10,11,14) has no cost just for personal use and development purposes. Any other use, needs a Commercial License.
Source: https://www.baeldung.com/oracle-jdk-vs-openjdk
Proprietary Implementations
There are also other private or commercial implementations:
- Azul Zing JVM
- CEE-J
- Excelsior JET (Discontinued)
- GraalVM EE
- Imsys AB
- JamaicaVM (aicas)
- JBlend (Aplix)
- MicroJvm (IS2T – Industrial Smart Software Technology)
- OJVM
- PTC Perc
- SAP JVM
- Waratek CloudVM for Java
Source: https://www.baeldung.com/oracle-jdk-vs-openjdk
Notes
- Oracle Java 9 and 10 has reached end of support.
More References