From the January 16th,
2019, Oracle has stopped free public updates for Java SE 8 [Update 201] was
released on January 15, 2019. The next update [Update 202] which requires a
subscription, is scheduled for April 2019. See : https://www.oracle.com/technetwork/topics/security/alerts-086861.html
Technically, Java is still free.
The current release (11) is available via the GPL open source license. But to
use free Java, you have to upgrade all your applications to Java 11, you must
use the open source OpenJDK distribution and you must commit to deploying a new
release every 6 months. OpenJDK 12 is scheduled to be released in March, and
OpenJDK 13 is scheduled to be released in September.
you are required to get a Java
Subscription from Oracle if you are using Oracle JDK in production. Starting
with Java SE 11, OpenJDK and Oracle JDK are identical (in previous releases,
they were different).
According to Oracle’s licensing FAQ (https://www.oracle.com/technetwork/java/javase/overview/faqs-jsp-136696.html) , Java SE 8 remains free of charge for
general purpose desktop and server use. This version of Java is licensed under
the Oracle Binary Code License (BCL), which is free to use for development,
testing, and production. You can still download Java SE 8 from here: https://www.oracle.com/technetwork/java/javase/downloads/index.html. But Oracle no longer
provides free bug fixes or security patches for Java SE 8. You must buy a Java
Subscription to get updates from Oracle.
Licensing facts:
Oracle’s free support for past,
current and future commercial distributions of Java SE (Oracle JDK) ended on
January 15, 2019. To get critical bug fixes and security patches for Java SE
after January, Oracle customers can purchase a support subscription for past
and current releases of Java. See below Oracle’s Java SE Support Roadmap. See https://www.oracle.com/support/lifetime-support/
for definitions of Premier/Extended/Sustaining
support.
Oracle's Java SE Support
Roadmap
Release
|
GA Date
|
Premier Support
Ends
|
Extended
Support Ends
|
Sustaining
Support
|
6
|
2006-12
|
2015-12
|
2018-12
|
Indefinite
|
7
|
2011-07
|
2019-07
|
2022-07
|
Indefinite
|
8
|
2014-03
|
2022-03
|
2025-03
|
Indefinite
|
9
|
2017-09
|
2018-03
|
Not Available
|
Indefinite
|
10
|
2018-03
|
2018-09
|
Not Available
|
Indefinite
|
11 (LTS)
|
2018-09
|
2023-09
|
2026-09
|
Indefinite
|
12
|
2019-03
|
2019-09
|
Not Available
|
Indefinite
|
Oracle’s licensing, support
subscription model, and release cadence:
·
Oracle is increasing the cadence of releases from one major release every 3 years to one feature release
every 6 months. Java 11, released in September, is a major release.
Java 8 was the last major release.
·
Oracle will continue to provide free support for the open source
Java distribution, OpenJDK – but organizations must be prepared to upgrade in
every 6 months. Oracle will publish free bug fixes and security updates to open
JDK but only to current release.
·
Organizations that are unwilling to upgrade in every 6 months have
the option of using Oracle JDK (commercial license) or staying with an older
version (Java SE 8) and purchasing a Java Subscription.
·
Going forward, Oracle will offer Long Term Support (LTS) for
periodic releases (comparable to a major releases) – e.g.,
Oracle will provide LTS for Oracle JDK 11 and Oracle JDK 17 (due out in 2021).
Oracle will not provide long term support for any of the intermediate releases
– Java 9, 10, 12, 13, 14, etc.
- Oracle offers two Java
Subscriptions — one for desktops (licensed by Named User at USD
2.50/user/month) and one for servers (licensed by Processor at USD
25/processor/month). You must license all machines where the JRE is
installed. Volume discounts apply (see below). Per Oracle’s pricing list (http://www.oracle.com/us/corporate/pricing/price-lists/java-se-subscription-pricelist-5028356.pdf):
- Named User
Plus: is defined as an individual authorized by you to use the programs
which are installed on a single server or multiple servers (“server” = desktop
computer) regardless of whether the individual is actively using the
programs at any given time. A non-human operated device will be counted
as a named user plus in addition to all individuals authorized to use the
programs, if such devices can access the programs.
- Processor
shall be defined as all processors where the Oracle programs are
installed and/or running. Programs licensed on a processor basis may be
accessed by your internal users (including agents and contractors) and by
your third-party users. The number of required licenses shall be
determined by multiplying the total number of cores of the processor by a
core processor licensing factor specified on the Oracle Processor Core
Factor Table which can be accessed at http://oracle.com/contracts.
- Published volume
discount rates for Java SE Subscription (for servers):
- 1-99 —
$25/processor/month (full price) $300/yr.
- 100-249 — $23.75
(5% discount) $285/yr.
- 250-499 — $22.50
(10% discount) $270/yr.
- 500-999 — $20.00
(20% discount) $240/yr.
- 1,000-2,999 —
$17.50 (30% discount) $210/yr.
- 3,000-9,999 —
$15.00 (40% discount) $180/yr.
- 10,000-19,999 —
$12.50 (50% discount) $144/yr.
- 20,000+ —
negotiable
- Published volume discount
rates for Java SE Desktop Subscription (for desktops):
- 1-999 —
$2.50/user/month (full price) $30/yr.
- 1,000-2,999 —
$2.00 (20% discount) $24/yr.
- 3,000-9,999 —
$1.75 (30% discount) $21/yr.
- 10,000-19,999 —
$1.50 (40% discount) $18/yr.
- 20,000-49,000 —
$1.25 (50% discount) $15/yr.
- 50,000+ —
negotiable
- Oracle provides limited support for Java SE
if you have licensed other Oracle products that require Java SE. Customers
are entitled, without the need to separately purchase Oracle Java SE
Support, to do the following:
- Download
and use Java SE updates, patches, and tools for use with the licensed
Oracle product. Customers are entitled to download only the Java SE
versions that are required by their Oracle product.
- Install and
use Java SE updates, patches, and tools to develop or deploy their Oracle
product.
- File
service requests for Java issues against their Oracle product, but not
directly against Java SE.
- Other application vendors, including SAP,
may offer a similar support agreement, if they provide their own JDK
distribution. Very few do. Check with your vendors.
- SAP
provides its own Java SE implementation, SAP JVM — Java SE 8
compatible
- SAP
BusinessObjects Java Viewer (which relies on Java Web Start) will not
work past Java 8
- IBM
provides its own Java SE implementation in many of its products, like
WebSphere and DB2
Alternative sources for Java distributions and support:
- You can get Java from numerous vendors that
provide distributions based on OpenJDK, including:
- You can get Java from numerous vendors that
provide distributions based on OpenJDK, including:
- AdoptOpenJDK
with HotSpot JVM or with IBM’s OpenJ9 JVM (GPL2+2, current and past
releases, as long as other vendors [IBM, Azul, SAP] produce the patches; community
support for Java 8 is planned until 2022). Note that AdoptOpenJDK is not
a certified distribution. See https://adoptopenjdk.net/.
- Azul Zulu (certified
commercial build of OpenJDK with paid support, or free certified
community edition, promising 8 years support for major releases,
including Java 6 support until 2019, Java 7 support until 2023, Java 8
support until 2026, and Java 11 support until 2027). Azul also offers
mid-term support for some feature releases (Java 9 until 2020 and Java 13
until 2022). See Azul’s support roadmap: https://www.azul.com/products/azul_support_roadmap. Prices range from standard support for 25 systems for
$13,200/year to unlimited premium support for $341,500/year. See Azul
Zulu Enterprise pricing: https://www.azul.com/products/pricing/.
- Red Hat
certified OpenJDK builds for RHEL (commercial product with paid support –
supports JDK 7 until 2020, and JDK 8 until 2023, and JDK 11 until
2026.) Red Hat distributes OpenJDK builds for Windows that are
supported for development of applications that work in conjunction with JBoss
middleware for deployment on RHEL. Red Hat also offers paid support
for OpenJDK 8 and 11 on Windows. See https://access.redhat.com/articles/1299013.
Red Hat’s distribution includes support for Java Web Start via the
IcedTea-Web open source implementation. See https://icedtea.classpath.org/wiki/IcedTea-Web.
- IBM
provides and supports its own certified JDK 8 on its various OSes through
2022 (updates provided via OS update process) and offers paid support for
AdoptOpenJDK with Open J9 JVM. See https://www.ibm.com/us-en/marketplace/support-for-runtimes.
- Amazon provides a free
certified distribution of OpenJDK 8, Corretto, available for Linux,
Windows, and MacOS. Amazon will provide free quarterly updates for JDK 8
until at least June 2023. (Updates include performance enhancements and
security patches. Amazon doesn’t provide on-call support.) Amazon plans
to release Corretto 11 (compatible with OpenJDK 11) in the first half of
2019. See https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/what-is-corretto-8.html
and https://aws.amazon.com/corretto/faqs/.
- Other Linux
distros include OpenJDK, including Arch, Debian, Fedora, SUSE, and Ubuntu
(previous versions available, updates provided via OS update process).
See https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms
- Most PaaS providers included a curated JDK platform. E.g., Azure includes Azul Zulu, AWS Elastic Beanstalk and Lambda include Amazon Corretto, Pivotal provides an OpenJDK build with Pivotal Cloud Foundry. (Because of “field of use” restrictions in the Oracle Java SE license agreements, you shouldn’t deploy Oracle’s commercial distributions on IaaS. You definitely want to use a third-party distribution.)
- One MAJOR restriction with OpenJDK is support for
applets and Java Web Start. These technologies are not included in
OpenJDK. They are proprietary add-on features in Oracle's
commercial distribution, and Oracle Java SE 8 is the last version
that supports them in a production environment. They have been
dropped from Java 11 altogether. But you do have an option: The
IcedTea-Web open source project (sponsored by Red Hat) also supports
applets and Java Web Start. Red Hat’s OpenJDK distribution for Windows
includes IcedTea-Web. You may also be able to use IcedTea-Web with other
OpenJDK distributions.
Recommendations:
You have three choices:
- Run unsupported older version java (Not recommended at all)
- Pay Oracle
- Find an alternate source for a JDK or JRE
distribution and for either commercial or community support.
What you should do now:
- Immediately identify every application that uses Java SE. Oracle provides a tool called Java Usage Tracker in their Java SE commercial products -- but you need to have licensed it to use the tool.
- For each application, determine the application
provider, what version of Java it uses, whether it requires a specific
Java distribution, what
operating system it runs on, and whether it’s running on a desktop or
server.
- If Oracle is the
application provider (e.g., WebLogic, Oracle Financials), you can get
support for Oracle JDK through your Oracle application support agreement.
- If SAP is the
application provider, you can get support for SAP JVM through your SAP
application support agreement.
- If the application runs
on RHEL, you can get support for OpenJDK through your RHEL support
agreement.
- If the application runs
on an IBM OS, you can get support for OpenJDK through you IBM OS support
agreement.
- If none of the above,
you will need to select a Java provider (Oracle, Azul, OpenJDK,
AdoptOpenJDK, Amazon, Red Hat -Windows)
- Determine whether you are comfortable relying on the
OpenJDK community support model and whether you are willing to upgrade
Java every six months. If so, upgrade as many applications as is
reasonable to Java 11, be prepared to upgrade every 6 months, and go with
OpenJDK with community support. (You will still need a support option
for those applications that remain on Java 8.)
- If you prefer to subscribe
to commercial support or aren’t willing to adopt the six-month
upgrade cadence, identify a support provider for long term
support for Java 11 (Oracle, Azul, or community support via AdoptOpenJDK).
- For those applications that require an
older version of Java, identify a distributor and support provider
(Oracle, Azul, Amazon, or AdoptOpenJDK) or run unsupported (not recommended).
- If you are going with a provider other than
Oracle, you will need to replace Oracle Java SE and/or Oracle JDK with
OpenJDK or another distribution on all desktops and servers.
- If you don’t intend to buy the Oracle Java
Subscription, immediately disable auto-update on all copies of Oracle Java
SE.
Some useful links:
Oracle Support Life Cycle:
https://www.oracle.com/support/lifetime-support/
Oracle’s Binary Code License (for Java SE 8):
https://www.oracle.com/technetwork/java/javase/terms/license/index.html
Oracle’s OTN license (for Java SE 11 - limited to dev and
test):
https://www.oracle.com/technetwork/java/javase/terms/license/javase-license.html
Oracle’s licensing FAQ:
https://www.oracle.com/technetwork/java/javase/overview/faqs-jsp-136696.html
Oracle’s licensing
information user manuals:
https://www.oracle.com/technetwork/java/javase/documentation/java-se-lium-2018-06-21-4892263.pdf (Java 8, 9, 10)
https://www.oracle.com/technetwork/java/javase/documentation/jdk11-lium-2018-09-20-5106626.pdf
(Java 11)
Here is an Oracle blog entry that
describes many of the licensing changes:
https://blogs.oracle.com/java-platform-group/faster-and-easier-use-and-redistribution-of-java-se
Here is a link that describes free
personal use support for Java 8 through 2020 but free commercial support ending
in 2019
https://www.java.com/en/download/release_notice.jsp
Here is a link to a whitepaper on
Oracle's client-side road map for java...
http://www.oracle.com/technetwork/java/javase/javaclientroadmapupdate2018mar-4414431.pdf
Here are links to other Oracle notes about this licensing
change:
http://www.oracle.com/technetwork/java/eol-135779.html
http://www.oracle.com/technetwork/java/javase/eol-135779.html
https://www.oracle.com/java/java9-screencasts.html?bcid=5582439790001&playerType=single-social&size=events
https://community.oracle.com/docs/DOC-1011529
Here is a link to the recent Java
SE Subscription plan from Oracle:
https://www.oracle.com/java/java-se-subscription.html
http://www.oracle.com/us/corporate/pricing/price-lists/java-se-subscription-pricelist-5028356.pdf
https://www.oracle.com/technetwork/java/javaseproducts/overview/javasesubscriptionfaq-4891443.html
Here are links to AdoptOpenJDK:
https://adoptopenjdk.net/
https://hub.docker.com/r/adoptopenjdk/
Here are links to Azul:
https://www.azul.com/downloads/zulu/
https://www.azul.com/java-stable-secure-free-choose-two-three/
https://www.azul.com/products/zulu-and-zulu-enterprise/zulu-enterprise-java-support-options/
https://www.azul.com/products/azul_support_roadmap
https://www.azul.com/products/pricing/
Here are links to Redhat's Java
support policies:
https://access.redhat.com/articles/1299013
https://access.redhat.com/articles/3409141
Here are links to IBM's Java
support policies:
https://developer.ibm.com/javasdk/support/lifecycle/
https://www.ibm.com/uk-en/marketplace/support-for-runtimes
SAP JVM - SE
8 compatible — documentation:
https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/7613c8c7711e1014839a8273b0e91070.html
SAP’s advisory regarding SAP BusinessObjects Web Intelligence Java Viewer (i.e.
Java Applet):
https://apps.support.sap.com/sap/support/knowledge/preview/en/2656446