For some new software developers, Java is not just overwhelming, but its platforms can also be confusing. This post points out the different Java platforms in the form of versions, architectural variations, patch updates and editions.
Before starting, it is important to know that Java and JavaScrip are not the same thing. Apart from the fact that they are both computer programming languages and that they are equally very popular, their only commonality is the word “Java”.
Java took roughly four years to develop and is still in active development. Several new versions have been launched since its release. It is considered to be fast and secure, but it not an easy-to-learn programming language. Because Java is also a computing platform, there are lots of applications and websites that will not work unless you have and implementation of Java Runtime Environment (JRE) installed. To be able to code Java-based applications, a Java Development Kit (JDK) software bundle is required (see later). Eclipse IDE is a popular free IDE to write Java applications with.
Java was invented by James Gosling and developed by Sun Microsystems. Starting in 1991, a group of engineers called the “Green Team” worked tirelessly to create Java. Java is currently owned by the Oracle corporation.
Java Runtime Environment (JRE) vs. Java Development Kit (JDK)
The first important fork that one might encounter when it comes to Java is its packages. As mentioned earlier, one can either be an end-user of Java applications, or a Java developer. Therefore Oracle has two Java packages that they maintain, namely the Java Runtime Environment (JRE) for end-users and the Java Development Kit (JDK) for developers.
Java Runtime Environment (JRE) aka ‘Java’
Java is not only a programming platform. All applications written in Java need a virtual environment to function in. This is called the Java Virtual Machine (VM). Typically, such an environment (JRE) comes either pre-installed on devices running mainly Java applications or needs to be installed as a plug-in on devices when Java applications are installed in addition to other applications (e.g. a Windows operating system). Windows, for example, does not come pre-installed with JRE, but MacOS apparently does.
Without going into too many details, Java (JRE) SE 8 can be downloaded from Java.com.
Java 8 vs. newer versions of Java
For most users, JRE is synonymous with ‘Java’ or ‘Java SE’. Although the latest version of JRE SE on Oracle.com is 13 (at the time of writing), the recommended version for regular end-users is version 8 (available from Java.com). Some software applications might refer to Java 8 as version 1.8.0. According to a short archived discussion on the Oracle Community Directory, the reason for Java.com not featuring newer versions of Java is that “Java 8 is planned to be the long term supported code line for end-user platforms. Releases newer than 8 are planned to be for server and embedded developers”. At the time of writing, the latest patch update of Java 8 is 241 (released 14 January 2020). Although JRE 8 would be enough for most users, the latest version can still be downloaded from the Java section of Oracle.com instead.
Different Java editions (i.e. ME, SE and EE) are discussed later on this post.
Java patch updates
Apart from version releases (e.g. Java 8 vs. Java 9), each version of Java has patch updates. These are smaller updates which are indicated by an u. (e.g. Java 8u240 to Java 8u241). As far as I understand, for example, Windows Auto Updates will only prompt for patch updates and not version releases.
Installed version(s) of Java
To see if you have Java on your Windows computer, and/or to see what architectural variations, versions and/or patch updates are installed, the Windows Control Panel Uninstall feature can be used.
Multiple patch updates, versions and architectural variations of Java RTE can be installed on the same operating system. Sometimes this might be necessary (i.e. to have Eclipse IDE and Aptans Studio 3 installed on Windows, but otherwise it is recommended to remove older versions (especially patch updates) if they are unused. By uninstalling older versions, performance, stability and security of the Java applications is improved. To uninstall a Java installation on Windows, the Control Panel Uninstall function or the Oracle Java Uninstall Tool can be used.
32-bit vs. 64-bit
The Java.com Java download page will direct most users to download links for the suitable architecture (32-bit or 64-bit) of Java SE. This choice is not only hardware and operating system dependant, but also browser dependant. Because there are still some issues surrounding the ability and availability of 64-bit web browsers on Windows operating systems, Java.com recommends using the 32-bit version. Some 32-bit applications (e.g. Aptana Studio 3) will insist on the 32-bit variation to be installed. The same goes for 64-bit installations (e.g.the 64-bit variation of Eclipse IDE). To have manual control over which architecture is installed, the See all Java downloads link at the bottom of the Java.com download page can be followed.
Both the 32 and 64-bit architectural variations can be installed on the same Windows computer.
Java Development Kit (JDK)
The Java Development Kit (JDK) is the software bundle required to be able to code in Java. JDK supplies a list of classes, referred to as the Java application programming interface (API).
Unlike with JRE (see earlier), JDK, which will include the same version of JRE, the latest version is recommended for up to date development. Apart from this, most of the architectural variations, patch updates and version notes mentioned for JRE applies to the JDK.
New JDK license agreement
As of 16 April 2019, the Oracle JDK License agreement has changed. It is still free for personal and development use, but some uses authorized under prior Oracle JDK licenses may no longer be available. See the Oracle JDK licence terms and FAQs if you are unsure.
Java ME, SE, EE & FX platforms
Oracle has four Java programming language platforms. They are Java Micro Edition (Java ME), Java Standard Edition (Java SE), Java Enterprise Edition (Java EE) and JavaFX. All these Java platforms consist of a Java virtual environment (Virtual Machine, or VM) and Java API. See the Oracle documentation for more information.
As one might think of a ‘standard edition’, Java SE provides core and standard functionality. The Java SE API provides the core functionality of the Java programming language. It provides everything from basic to high-level classes. Java SE is the most commonly used platform of Java.
The Java EE platform is built on top of the Java SE platform. The Java EE platform provides an API and virtual environment for developing and running large-scale, multi-tiered, scalable, reliable and secure network applications.
The Java ME platform provides an API and a small-footprint virtual machine for running Java programming language applications on small devices, like mobile phones. The API is a subset of the Java SE API, along with special class libraries useful for small device application development.
JavaFX is a platform for creating rich internet applications using a lightweight user-interface API. JavaFX applications use hardware-accelerated graphics and media engines to take advantage of higher-performance clients and a modern look-and-feel as well as high-level APIs for connecting to networked data sources.