This is a FAQ on Oracle Java SE. You can get details on licensing and pricing.
Java FAQ (Licensing and Pricing)
- Java SE is Java Platform, Standard Edition (Java SE)
- Java SE is a computing platform that allows developers to create and deploy Java applications for desktops and servers.
- It was earlier known as J2SE, i.e. Java 2 Platform Standard Edition.
- Java is developed, initially, inside the OpenJDK community.
- The OpenJDK community is helmed by Oracle Corporation and has a very large number of members – both corporate and individual.
- OpenJDK is “The place to collaborate on an open-source implementation of the Java Platform, Standard Edition, and related projects.” (please see openjdk.org)
- The OpenJDK community published OpenJDK – the free and opensource version of Java SE.
- Apart from OpenJDK, there are other developers of Java:
- Oracle
- Provides Oracle Java SE
- This is a proprietary rendition of OpenJDK
- Third-Party Java SE developers, some of whom are:
- Azul
- Bellsoft
- Amazon
- SAP
- Microsoft
- IBM
- Eclipse
- Oracle
- Java and Java SE trademarks are owned by Oracle Corporation, and its affiliates
- The “OpenJDK” trademark is also owned by Oracle Corporation but will continue to be available for use by others under the terms of the OpenJDK Trademark Notice, or similar terms. (see here. )
- BCL or BCLA stands for Binary Code License Agreement.
- This agreement, with exceptions, allowed for free use of Oracle’s Java SE.
- This agreement ended with versions released before January 2019
- OTN for Java stands for Oracle Technology Network Agreement for Java
- Versions under this agreement need to have a commercial subscription for use by non-development users.
- There are some exceptions to procure commercial licenses: basically for end-customers who might be using specified Oracle products.
- This agreement came into force for versions that came after January 2019
- NFTC stands for No-Fee Terms and Conditions
- Java SE released by Oracle under NFTC is free to use for all purposes (with some caveats).
- This agreement was released in September 2021
Each of the above agreements have been dealt at length in articles of their own.
Java SE consists of
- Java Development Kit (JDK),
- Java Runtime Environment (JRE)
Note:
- The JDK is a superset of the JRE, and contains everything in the JRE, plus tools such as compilers and debuggers for development.
- A JRE provides a Java Virtual Machine (JVM), the standard class libraries and other components to run applications written in the Java programming language.
The Million$ question !!! (Or is it the Multi-Million $ question?)
While the answer to the above is not a qualified YES or a NO (especially with Oracle getting huge license & support subscription fees as revenue), let us look at it carefully:
Oracle Java SE for Commercial Use:
- Pre-January 2019 versions are free for majority of use cases.
- Post September 2021 Long Term Support (LTS) versions & updates are free for all use cases for a period of 4 years after initial release.
- Versions released
- Between April 2019 to September 2021
- Four years after release of the most recent LTS versions
are NOT FREE for commercial purposes EXCEPT if:
-
- They are covered under specific product use by Oracle or some other vendor.
Oracle Java SE for Personal Use
- Java is free for personal use.
Oracle has defined three types of users by license type. They are:
- Oracle Customers. These are customers with
- An active Java SE Subscription product,
- A support contract for Oracle Java SE Advanced, Oracle Java SE Advanced Desktop, Oracle Java SE Suite, and/or Java SE Support,
- A Java SE support entitlement for use of Java SE solely with another Oracle product
- Personal, Development and other Users. They are customers who:
- Use Java SE under one of the permitted uses at no cost under the Oracle Technology Network License Agreement for Java SE.
- Additionally includes individuals who use Java SE for free on personal desktops or laptops, or those who use Java SE for development use.
- All Users. These are customers who
- use Java SE at no cost under the terms of the Oracle No-Fee Terms and Conditions License
- Oracle Java SE is priced by the ‘Employee’ metric
- Azul’s Azul Platform Core Support is priced by
- Number of Cores for Servers
- Number of Desktops for Endpoints
- Bellsoft’s Liberica JDK Support is priced by
- Number of Servers
- Number of Desktops
- The standard term for Java SE Universal subscription is one year.
- We have seen customers being offered multiple different terms – three years, five years, seven years etc. One of our clients was also offered a ten year term.
This statement is from java.com (you can see it here )
- The latest available version is compatible with the older versions.
- However, some Java applications (or applets) can indicate that they are dependent on a particular version, and may not run if you do not have that version installed.
- If an application or web page you access requires an older version of Java, you should report this to the provider/developer and request that they update the application to be compatible with all Java versions.
My view, from practical experience, is:
- On the desktop, for the vast majority you do not need older versions.
- On the server side,
- Vast majority run any version but are certified with a specific version by the application developer.
- Some applications need specific versions. This is specified by the application developer.
What are we seeing in the marketplace?
Almost all application developers, apart from Oracle, are
- Developing applications on OpenJDK
- Certifying older versions of their applications with the latest OpenJDK and a few of the other available non-Oracle Java distributions.
End of Public Updates is specific to Oracle Java SE distribution.
What were Public Updates?
Public Updates were ‘free’ updates to Java till Java SE 8 Update