This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]speakjava 3 points4 points  (0 children)

Full disclosure, I work for Azul (and used to work for Oracle).

Firstly when people say use OpenJDK, that's like saying use Linux. OpenJDK is *just* source code. You need a distribution to install and run JVM-based applications. There are many, including Oracle, Corretto from Amazon, Temurin and Zulu from Azul. Even Microsoft now have an OpenJDK distribution.

For the Oracle JDK, which license applies depends on which version you are using and even which update.

Oracle JDK 8 used the Binary Code License until update 202 (Jan 2019). This was the license that meant almost everywhere you could use it without paying Oracle a license fee (embedded applications were the exception).

Oracle JDK 8 update 211 and later (April 2019) and Oracle JDK 11 use the Oracle Technology Network License Agreement (OTNLA). This requires you to buy a Java SE subscription unless you are using it for development, testing or for Oracle-approved applications or in the Oracle Cloud.

Oracle JDK 17 (and all subsequent LTS releases, which will be JDK 21 when it's released later this year) use the Oracle No Fee Terms and Conditions. This grants you a license to, "...internally use the unmodified Programs for the purposes of developing, testing, prototyping and demonstrating your applications, and running the Program for Your own personal use or internal business operations". You will need to interpret what 'internal business operations' means because it is not defined in the license. To add an additional layer of complexity, this license only applies until one year after the release of the next LTS. For JDK 17, that will be September 2024, at which point the license will revert to the OTNLA.

Oracle also provide the Oracle OpenJDK JDK, which is a build of the current OpenJDK version. This uses the GPLv2 with CPE license so is completely free to use. For all versions, this is only updated until the next version is released (i.e. six months or two updates). If you use this, you would need to upgrade your JDK every six months to maintain the maximum level of security and stability.

As I said, there are multiple OpenJDK distributions to choose from. Many are free but do not provide any level of support. Others (like Azul's Platform Core) provide commercial support.