Is Java Free?

Some confusion has resulted from support policy changes by Oracle which were announced in June 2018.

In December 2018, Progress Software Corp wrote Product Alert: Oracle New JDK Release Model Impacts on OpenEdge Developers and Users (PDF psc_product_alert_oracle_new_jdk_release_model_impacts_on_progress_openedge_application_develers_and_users_20181219.pdf).

Both of these may have caused confusion within the 4GL community about whether Java is or is not free.

Short Answer

Yes, Java is available (for both development and production usage) free of cost and free as in freedom.

Longer Answer

There are many JDK/JRE distributions. The Oracle JDK/JRE (called Java SE) does happen to be popular since it was the original Java distribution from the creator of Java. But the Oracle JDK/JRE is no longer the reference implementation of Java. The OpenJDK project is the reference implementation for Java. It is an open source, production quality, full Java implementation which can be used at no cost for both development and for production.

Oracle's announcement only affects users of the Oracle JDK/JRE. Users of OpenJDK are not affected since the costs and length of the support period are not related to or controlled by Oracle. The larger Java community controls the support schedule for OpenJDK. Java 8 will be supported at least until June 2023. The next "stable long term release" of Java is Java 11 (released in September 2018). Java 11 will be supported at least until September 2022 and likely far past that point. These support lengths are long enough for migration to the next long term release of Java which is expected to be Java 17 which will be released in September 2021.

Many developers (including Golden Code and the FWD project) already use OpenJDK as the supported version of Java. For those that do not, it is typically a simple effort to switch to and/or certify OpenJDK for a Java application. Red Hat has a useful explanation on how to do this.

Progress is impacted because they are dependent on the Oracle JDK/JRE. Progress is moving to OpenJDK instead of purchasing support for embedding the JRE in their installation. This is a reasonable choice on their part since there is very little reason for an organization to need to use the Oracle JRE. However, if an organization does have some requirement for the Oracle JRE, that organization can always pay Oracle for a support contract. This is no different for OpenEdge than it would be for FWD. The difference is that now a separate JRE installation will be needed for an OpenEdge installation. In other words, the JRE is a new dependency that must be installed first, before OpenEdge is installed.

FWD has always had this requirement since FWD has never bundled a JRE inside. In a Java environment, this is a normal expectation.

More details:

Is Java Open Source?

Yes. Whether you call it "open source" or "free software", Java meets the definition for both.

The OpenJDK project is the core of Java technology. It is released under the GNU General Public License, version 2, with the Classpath Exception which is a fully open source/free software license.

To understand more about open source/free software:

What is the Official Platform for Java?

Since Java 7 the "official reference platform" of Java has been the OpenJDK project.

OpenJDK is a fully open source version of Java that enables the 4 essential freedoms of free software. Many companies (including Oracle, IBM, Red Hat, Azul and others) provide JDK/JRE distributions that are based on the open source OpenJDK.

You can download "pure" releases of OpenJDK from AdoptOpenJDK. These releases are well supported and can be relied upon for production environments.

Isn't the Oracle JDK/JRE the Official Platform for Java?


Oracle ships a JDK/JRE called Java SE which is just one of many JDK/JRE distributions. It is based on the OpenJDK project and the implementation is nearly the same, especially for Java 11 and later.

Does the OpenJDK License Require Java Applications to Open Source?


OpenJDK is released under the GNU General Public License, version 2, with the Classpath Exception (a.k.a. the GPLv2 + CE) which is a fully open source/free software license.

The GPLv2 is a reciprocal open source license. Reciprocal means that any linked code must be released under the same open source license.

The "classpath exception" changes this reciprocal obligation. It is designed such that Java applications are exempted from this requirement. Java applications can be released under any license (including proprietary licenses) and there is no obligation to open source.

Does FWD Require the Oracle JDK/JRE?


OpenJDK is the primary JDK/JRE used to implement FWD and it is a very good choice.

Does the Elimination of Web Start, Applets or JavaFX Cause a Problem for FWD?


Starting in Java 11, all 3 of these features have been removed from the reference implementation of Java. Oracle announced this in their client roadmap update from March 2018 (oracle_java_client_roadmap_update_march_2018.pdf).

FWD does not use any of these features. It is unaffected.

Could Swing Be Removed From Java?


Swing and AWT are core API technologies which form the foundation for a substantial amount of the JDK/JRE. More importantly, they form the foundation for a massive amount of code in the larger Java community. Oracle highlighted the long term nature of Swing (and AWT) in their client roadmap update from March 2018 (oracle_java_client_roadmap_update_march_2018.pdf). The entire Java community depends upon Swing. It cannot be removed.

FWD only relies upon Swing for the desktop versions of the GUI and ChUI clients. All other clients (including the web clients, batch clients and native TTY) have no such dependency.

© 2019 Golden Code Development Corporation. ALL RIGHTS RESERVED.