Understanding the Java versions and platforms

Understanding the Java versions and platforms

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.

This is an ongoing post. Please suggest corrections, explanations, etc. in the comment section at the bottom of this page.

‘Java’ != ‘JavaScript’

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

Java is a programming language and computing platform (an environment in which its code is executed) first released in 1995. Unlike JavaScript, which is mainly a client-side scripting language, Java is used to write fast, but robust and secure server-side applications and websites. You might have heard, or seen, that Java is everywhere! Today, it is still used on billions of devices ranging from laptops, game consoles, cell phones, datacenter to scientific supercomputers.

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.

JavaScript

JavaScript (abbreviated JS, first called ‘Mocha’) is a scripting language that was released in 1997. It is an extremely useful object-oriented programming language. As a client-side scripting language, it is mainly used in combination with HTML and CSS on websites to create user interactivity. When compared with Java, JavaScript is considered to be easier to learn.

Although JavaScrip was initially written in 10 days, over the years it has come a long way to where it is today. Unlike Java applications, JavaScript does not need any (virtual) platform, other than a modern web browser to function. While a good IDE (e.g. Eclipse IDE and Aptana Studio) will help with writing code, it can be written and tested with any text editor and your web browser.

Lately, using Node.js, JavaScript is increasingly being used to create server applications and services. Node.js is a JavaScript Engine (almost like Java Runtime Environment).

JavaScript was invented by Brendan Eich and became an ECMA standard in 1997. It is maintained by Mozilla (created by Netscape) and is 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.

Java.com main page
The latest recommended version of Java SE RTE can be downloaded from Java.com.

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.

Java in the Windows Control Panel
Windows 10 Control Panel Uninstall window. Note the different versions of Java. In this case, a 64-bit variation of the JDE 13 is installed. The other two versions, JDK 8 and JRE (showed as just Java 8) are 32-bit variations.

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.

Oracle Java Uninstall Tool
The location on Java.com to access the Java Uninstall Tool.

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.

Java.com see all Java downloads
The ‘See all Java downloads’ link is situated at the bottom of the Java.com download page.

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.

The latest version of JDK can be downloaded from the Java section of the Oracle.com website.

Oracle.com's Java downloads

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.

Java SE

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.

Java EE

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.

Java ME

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

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.

About the author
Renier busies himself with improving his English writing, creative web design and his websites, photoshopping, micro-electronics, multiple genres of music, superhero movies and badass series.
Behind the Scenes is a free, informative website. If you find value in any of our content, please consider making a donation to our cause.
Donate via PayPal

Save, share & Disqus

Use the buttons below, on the left or the bottom of this page to share this post. Your comment is important, but don't be a knob. Keep it constructive and polite.

Comment via Disqus

Disqus is a worldwide comment hosting service for web sites and online communities. This secure platform ensures a pleasant commenting environment which is manageable from one account. Use the Login button to sign up.

More coding related posts

Discover the easy way to send bulk SMS from your PC, Mac or mobile device
Discover the easy way to send bulk SMS from your PC, Mac or mobile device
4 April 2020
Ad: Using the latest in technology, WinSMS offers cost effective messaging solutions that makers and business owners can use. With their online portal and API functionality, buying SMS bundles and sending them to recipients is more cost effective and easy to do. More…
Getting started with private projects on Raspbian and Bitbucket
Getting started with private projects on Raspbian and Bitbucket
28 October 2018 | Updated 10 March 2020
Bitbucket is a great alternative to Github to start, store and track simple programming dependant project files. On a Raspberry Pi, it can be done using Raspbian. Projects uploaded to Bitbucket with less than 6 contributors can be kept private and won’t cost a cent. More…
Using Cron to schedule tasks
Using Cron for scheduling tasks
30 June 2017 | Updated 11 July 2017
Cron is an Unix-like operating system software utility used to schedule automatic time-based commands. Entered commands can be in the form of Bash or Bash scripts that are meant to be automatically executed periodically at fixed times, dates or intervals. More…
ESP32 development boards for Wi-Fi communication
ESP32 Development Boards for Wi-Fi communication
25 June 2017 | Updated 26 June 2017
The ESP32 microcontroller development board is a breakout board for the ESP32 microchip. It is a microcontroller board with various I/Os and built-in Wi-Fi and Bluetooth. More…