Foojay Today

OpenJDK vs. OpenJFX Release Cycles

October 29, 2020

Confused about the release cycles of OpenJDK and OpenJFX and the relationship between them? Read on!

OpenJDK

Since 2018, Java switched to a 6-months release cycle. Every new release brings new finished features, but also "preview" ones which are not finished yet. These can be enabled with a flag (`java --enable-preview`) to allow developers to start experimenting with them and provide feedback to the developers to further improve these so they can become available in one of the next releases.

Java release history

Thanks to this fixed schedule, new versions are no longer causing major changes, but provide a steady, predictable, and stable flow of new features.

If you're in doubt if you should move to a newer JDK version, make sure to read "Modern Java toys that boost productivity, from type inference to text blocks. Developers using older versions of the Java platform are missing out." by Angie Jones on the Oracle Java Magazine.

OpenJFX

In the past, JavaFX has been bundled with the Oracle JDK (until JDK 11), but it was always a project on its own as openjfx.io, with its sources on GitHub. Gluon builds and distributes the OpenJFX releases, following the same 6-month release cycle.

JavaFX history

You can find them in the Maven Central Repository or on the Gluon website.

openjfx in the Maven Central Repository

An overview of all the changes in OpenJFX since version 11 are available here.

Relationship Between OpenJDK and OpenJFX Releases

Until now, the OpenJFX releases did not require a specific OpenJDK version. This means you can use OpenJDK 11 combined with OpenJFX 15.

At this moment, there are no planned features or changes in OpenJFX which require new JDK features (text blocks, records, etc), so the next releases of OpenJFX will most probably still be compatible with JDK 11.

Conclusions

Yes, OpenJDK and OpenJFX are aligned in the number of releases per year (2x) and follow the same major version numbering (15, next one will be 16).

No, they are not "bound together" and follow their own path.


The above timelines are screenshots of a small JavaFX application which is part of my book "Getting Started with Java on the Raspberry Pi". The sources are available on GitHub.

Topics:

Related Articles

View All
  • Beginning JavaFX Applications with IntelliJ IDE

    This article is for the beginner who wants to get started developing JavaFX applications using IntelliJ IDE.

    While this article may seem elementary for some, I believe it can help newcomers to the JavaFX platform avoid some pitfalls and really hit the ground running.

    Read More
    Apr 28, 2021
  • A JavaFX App on ZuluFX in 60 Seconds

    Learn how to use a popular distribution from Azul to build a JavaFX HelloWorld Application in 60 seconds!

    I’m not sure if you’ll taken more than 60 seconds to complete the steps, but assuming your environment is setup and the JDK 11+ and JavaFX is installed you should be able to cut and paste the code in seconds.

    Read More
    Aug 23, 2020
  • Creating a JavaFX World Clock from Scratch (Part 1)

    Welcome to Creating a JavaFX World Clock from Scratch (Part 1)! In this series of blog entries I would like to show you how I created a “sci-fi” looking world clock that happens to be a cross-platform Java desktop application.

    Here I will explain my thought process, development workflow, and of course JavaFX code details. Since it’s still in the early stages, you can tune in by commenting or joining foojay’s Slack channel at foojay.slack.com [2], where I and others (Java experts & friends of OpenJDK/OpenJFX) can offer advice.

    Read More
    Dec 14, 2020

Author(s)

  • Frank Delporte

    Frank Delporte (@frankdelporte) is a Java developer, blogger, author of "Getting started with Java on Raspberry Pi", and contributor to Pi4J. Frank blogs about his experiments with Java, sometimes combined ... Learn more

Comments (0)

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

Highlight your code snippets using [code lang="language name"] shortcode. Just insert your code between opening and closing tag: [code lang="java"] code [/code]. Or specify another language.

Save my name, email, and website in this browser for the next time I comment.

Subscribe to foojay updates:

https://foojay.io/feed/
Copied to the clipboard