Which free version of java can I use for production environments and or commercial purposes?

JRichardsz picture JRichardsz · Oct 5, 2019 · Viewed 19.3k times · Source

While I was in a dockerization project in my current job, I got this doubt: Which java can I use?

This doubt is due to :

java download alert

So after some researches I got these conclusions:

  • Since the java 8 update at April 16, 2019 8u221, all versions and updates for (java 8,9,10,11 y 13) has no cost just for personal use and development purposes. Any other use, needs a Commercial License
  • Legacy versions prior to 7, does not have and will not have any update. Maybe a sales contact could be a solution if an update in these versions are required for Legacy Systems Support.
  • If I want to use java 8 oracle version for commercials purposes and FREE, I need to use a previous version of April 16, 2019 8u221 update

Questions

According to my conclusions:

  • If my development strictly needs or was developed with JDK 8, Can I only use Oracle Java SE 8 JDK 8u202 and earlier versions for FREE and commercial purposes accepting issues and security problems?

  • If I can change my development and I want still FREE, and I want to have improvements and security updates, I must use one of these java open implementations?


References

Answer

Speakjava picture Speakjava · Oct 6, 2019

Oracle made a number of significant changes to how the Java platform is developed, distributed and updated at the same time as the launch of JDK 9.

The key facts to answer your questions are these:

  1. Oracle was using the Oracle Binary Code License (OBCL) for Java. This had field of use restrictions (you needed a commercial license for embedded use) but granted free use of the Oracle JDK for general purpose development and deployment.
  2. As of JDK 11, the license changed to the Oracle Technology Network License Agreement (OTNLA), which requires you to purchase a Java SE Subscription for use in commercial production. This license has also been applied to updates of JDK 8 since April (update 211/212).
  3. As of JDK 11, Oracle eliminated all functional differences between the Oracle JDK and a binary built purely from the OpenJDK source code. The important things no longer in the Oracle JDK 11 are the browser plugin, Java Web Start and JavaFX.
  4. You can continue to use any public Oracle binaries of JDK 7 (and earlier) in production without the need for a Java SE subscription, as the license is still the OBCL (it has not been changed retrospectively). You can also, as you say, use JDK 8 up to update 202 under the OBCL without cost.
  5. There are several options for continuing to use JDK 8 with updates for free. One of those is Zulu Community from Azul (who I work for). This is a free, TCK-tested binary with a couple of additional backported features (TLS 1.3 and Java Flight Recorder). Since this passes the TCK, from a functional perspective, it is identical to the Oracle JDK. Unless you are using Applets or Web Start your applications will work in the same way as with the Oracle JDK.
  6. If you want to move to JDK 11 (the current long-term support release, as defined by Oracle but followed by all other JDK providers), then you will need to choose one of the free distributions (like Zulu Community).

It is highly recommended to ensure your JDK is up to date and contains all relevant security patches. Continuing to use an older version could expose you to significant security exploits.