As a developer I would prefer to install JDK11 binary distribution from Oracle (Oracle JDK) and get free updates from Oracle for 7 years (LTS). Is this possible for free?
I think it is not possible, because after 6 months from JDK11 appearing on Oracle website I won't be able to download it (Oracle JDK 11 version with any current updates, like 11.0.2) from Oracle website, and I won't be able to find (on Oracle website) where to download such updates (for OracleJDK) without a paid subscription from Oracle. I guess I can search for OpenJDK 11 paid alternatives to get updates longer than 6 months (say, Red Hat), but I am not aware of any free alternatives - please advise!
I know the following (please correct me if I'm wrong):
- Starting from Oracle JDK9 any use (even just use, not just getting updates - so using without updating is also paid) of such JDK in production is paid. But any use in development, testing, prototyping and demonstration is still free!
- It seems that for OracleJDK use is also free if I use any Oracle cloud service or Oracle SQL Developer IDE (see "License Rights and Restrictions" part of the licence and “Oracle Approved Product Use” definition)
- I can use OpenJDK for free in production (JDK9, JDK10, ...), those JDK shall be exact equivalent of Oracle JDK, the only difference was that earlier OpenJDK did not have binary (at jdk.java.net they only had sources as zip)(but now binaries are available there at https://jdk.java.net/archive/ and http://jdk.java.net/12/) besides adoptopenjdk.net provide binaries made from OpenJDK (src taken from openjdk.java.net site).
- Until JDK8 there was significant difference between OracleJDK and OpenJDK (performance, stability, etc) - but starting JDK9 these differences shall be gone (Oracle claims so, I don't know the reality).
- LTS updates will be provided ONLY for OracleJDK (for LTS releases JDK8, JDK11, prospective JDK17) for money only. LTS releases will appear every 3 years, support for each would be at least 7 years.
- So if I use OpenJDK JDK11, I will get absolutely no updates (neither for 6 months, not for one 1 year, not for 7 years).
- If I have a non-LTS (say JDK12) from Oracle (paid only if in production), I will get updates only for about 6 months - until JDK13 is released and no longer (even for money).
- If I have a non-LTS (say JDK12) from OpenJDK, I will also get absolutely no updates - I can download only the first JDK12 as source (zip) at jdk.java.net or as a binary distribution (exe installer for Windows) at adoptopenjdk.net
There is a strange site with OpenJDK updates (Mercurial repo?), but I don't seem any practical way how to use this site.
I think there is some discussion in the community what to do now with updates for OpenJDK releases - who and how can do it. But today nobody does that.
Also, RedHat seems to offer some updates for OpenJDK, but I don't understand the whole picture. I guess that if I pay for RHEL, than they would update my JDK as a part of RHEL (this is just like buying Oracle JDK, but maybe cheaper, I don't know. Besides RHEL seems to use OpenJDK, not OracleJDK. Not sure OpenJDK and OracleJDK are so much identical now as Oracle claims).
Concerning OpenJDK updates (no such updates exist?!), I don't understand this - if Oracle claims that it is Oracle (!) who provides OpenJDK (!) releases at jdk.java.net site (see prooflink), why Oracle does not also provide updates for those OpenJDK for at least 6 months (no such updates are present on dk.java.net site)? OracleJDK and OpenJDK are "kind-of" identical now, Oracle updates its OracleJDK for 6 month anyway - why not also update OpenJDK for 6 month?
P.S. Seems like Oracle promises to contribute security updates to OpenJDK quarterly (but not any other updates: performance updates, stability updates, as in Oraccle JDK if I pay for "Java SE Subscription" which includes updates and online/telephone support 24/7 at $25 per month per processor on server or in a cloud):
Also interesting that Mark Rotteveel (see comments) writes that there is only a single place with JDK source-code: (probably it is http://hg.openjdk.java.net/ I don't know the difference from http://openjdk.java.net/ ) and even Oracle (and others) take code from there:
OpenJDK is a source-only project, every build is a variant of OpenJDK (eg Oracle, AdoptOpenJDK, RedHat, Azul, and others) built by a company, group of people etc, possibly with vendor specific extensions and tools.
REFERENCES: