This post is about Java SE.

Java SE platform is an specification that can have multiple implementations.

You can read this post about Java platforms.

Java SE Implementations

There are different implementations of this platforms of Java SE by different vendors. There reference one is OpenJDK, and all the others are based on this one.

As the official reference implementation of Java SE, called OpenJDK, is open-source, there are different implementations by different vendors.

In fact, many big companies have created their own implementation of Java SE. You can find implementations from Oracle, IBM or Microsoft.

You can find a list of all OpenJDK builds on this external link.

For managing multiple JDK versions you can use third party tools like SDKMAN!

https://sdkman.io

OpenJDK

Open Java Development Kit (OpenJDK) is a free and open-source implementation of Java SE.

OpenJDK is the official reference implementation of Java SE. The alternative Java SE implementations (including Oracle Java SE) are based on OpenJDK.

Official instructions about how to install OpenJDK can be found on this external link.

OpenJDK has not the friendlier installation procedure of Java on OS different to Linux. Installing OpenJDK in Windows requires applying many manual steps. On the contrary, installing it in Linux through package managers (e.g., apt, yum) is very automatic.

Duke is the mascot of Java. Because it has the open-source license BSD, it is used by the open-source implementations of Java. If you find Duke’s logo when running a program, it is probably running an OpenJDK implementation and not Oracle Java implementation (that uses the cup of coffee instead).

Duke, the Java mascot

Eclipse Temurin

Temurin is a OpenJDK build by Eclipse Foundation. It is developed by the Eclipse Adoptium workgroup. Before this workgroup joined the Eclipse Foundation project, they worked as AdoptOpenJDK.

It uses a permissive license.

Its initial release was October 2021. You can check the lifecycle support dates on this external link.

There is a clarifying migration guide explaining how to migrate from Oracle JDK to Eclipse Temurim and suggesting open source alternatives to Oracle proprietary components.

Temurin is

There is an auto-update software for AdoptOpenJDK, Eclipse Temurin and IBM Semeru called AOJDK-UpdateWatcher. It is FOSS under a MIT license.

Official website

Oracle Java SE

Oracle Java SE is the OpenJDK built by American company Oracle. Its logo is a cup of coffee, so when you find this logo, you can be sure that it is using Oracle’s implementation of Java.

Oracle Java logo

Oracle is the owner of Java since it acquired Sun Microsystems in 2010.

There are two downloadable software for Oracle Java SE: Oracle JRE and Oracle JDK.

The main difference between OpenJDK and Oracle JDK is that the first one is free of use (GPL license), and the second one has a commercial license since Oracle JRE/JDK 8.0.221 (2019-01-16). You need to pay for Oracle JDK in certain situations. Last Oracle Java freeware release was 8.0.202 (2019-01-15) or 8.0.211 (2019-04-16). The release dates have been obtained from the release date history.

You can read the Java SE Support roadmap.

Other differences is that Oracle JDK adds extra components like Java Plugin and Java Web Start (JWS) (but only until Java 8), some closed source third party components (like a graphics rasterizer), some open source third party components (like Rhino), additional documentation or third-party fonts that are not included OpenJDK.

According to Oracle, its intent is to open source all pieces of the Oracle JDK except those that they consider commercial features such as JRockit Mission Control (not yet available in Oracle JDK), and replace encumbered third party components with open source alternatives to achieve closer parity between the code bases.

With all due cation, we can say that OpenJDK is to Oracle Java what Chromium is to Chrome, though Chrome is (still) completely free.

List of Java SE Libraries

Java libraries are usually distributed as Java Archive files with .jar extension.

Some Java SE libraries are shared with Jakarta EE services, as for example JDBC.

Java libraries by categories:

  • User Interfaces (UI)
  • Video Games
  • Databases
  • Network Technologies

Java Libraries for User Interfaces

Java libraries for user interfaces:

  • AWT
  • Swing
  • SWT
  • JFace
  • JavaFX

JavaFX

JavaFX started as a Java GUI but it was later considered a platform itself.

It is proprietary and developed by Oracle.

Databases

Java libraries for databases:

  • JDBC

JDBC

Java Database Connectivity (JDBC) has 4 driver types:

  • Driver type I or bridge JDBC-ODBC.
  • Driver type II or partially native driver.
  • Driver type III or Middleware driver.
  • Driver type IV or Pure Java driver.

Directories

Libraries for directories (like LDAP or DNS):

  • Java Native Interface (JNI)

JNI allows to call native methods written in other languages like C or C++.

Parsing

Libraries for parsing:

  • JAXP (Java API for XML Processing)

Java Libraries for Video Games

Some Java libraries for video games are LWJGL, libGDX or jMonkeyEngine.

To read more about Java libraries for video games, please check this post.

Java Libraries for Network Technologies

Java Secure Socket Extension (JSSE) establishes secure communication channels through SSL.

You might also be interested in…

Leave a Reply

Your email address will not be published. Required fields are marked *