In your opinion, what is the best version of OpenJFX (JavaFX) and Scene Builder should I use with Amazon Corretto 11 (OpenJDK)?
Currently, until the date of this post, there are 2 versions of OpenJFX (JavaFX) and 2 versions of Scene Builder:
Gluon’s JavaFX versions:
- JavaFX 11 LTS
- JavaFX 16 Latest Release
Gluon’s Scene Builder versions:
- Scene Builder 16
- Scene Builder 8.5.0
For me, who prefer to develop my projects with an LTS version, which options should I use? Is there any kind of incompatibility? Should I be concerned about using such tools with different versions? Is there any kind of configuration to be done to work with these tools using Amazon Corretto 11 (OpenJDK)?
Grateful in advance!
Advertisement
Answer
I am not an expert on JavaFX, but I have seen that every release of OpenJFX arrives shortly after the same number version of Java (OpenJDK).
Current versions
If you want to stay current with the latest and greatest, use Java 16 with JavaFX/OpenJFX 16. And later this year in September, versions 17 of both.
By the way, Java version 17 may be designated LTS though not yet confirmed.
If you are releasing updates more often than the six to eight months cadence of the short-term supported Java & JavaFX, say quarterly, then you could always be deploying on the current versions (16, 17, 18, …) while they are supported.
Keep in mind that JavaFX/OpenJFX has been under rapid development in recent years. I expect you will find many significant changes between versions 11 and 16. I suggest you study the matter, starting with the various Release Notes documents.
LTS versions
If you want to stick to deploying LTS only, for Java 11 I might stick with JavaFX/OpenJFX 11 for maximum compatibility and maximum support opportunities.
However, the Release Notes for OpenJFX 16 says:
JavaFX 16 requires JDK 11 or later.
So you might choose to use the latest version of JavaFX 16 with Java 11.
The main issue I can imagine is with support. I cannot find any official statement on the OpenJFX.io site about length of support, and about short-term versus LTS versions. However, given that OpenJFX is part of the OpenJDK project, I am guessing the same support cadence applies: 11 is the LTS, 16 only supported until shortly after 17 is out, and 17 may be the next LTS.
If you have purchased support plans from any vendor such as Gluon, Azul Systems, BellSoft, Oracle, etc., I suggest you confer with them to learn about their version policies.
If you choose the LTS route, it may be wise to regularly compile, run, test, and debug your app on the current version (16 now). This ensures that when you eventually move on to the next LTS, you will not face a bunch of surprises.
Questions
You asked:
For me, who prefer to develop my projects with an LTS version, which options should I use?
Stick with Java 11 & JavaFX/OpenJFX 11 for LTS deployment, if my guess is right about JavaFX/OpenJFX 16 support being short-term only.
You asked:
Is there any kind of incompatibility?
JavaFX/OpenJFX 16 is intended for Java 11 through 16, per the Release Notes.
So, no, you should not see incompatibilities with using JavaFX/OpenJFX 16 on Java 11.
You asked:
Is there any kind of configuration to be done to work with these tools using Amazon Corretto 11 (OpenJDK)?
While I do not use Corretto, my understanding is that it is built from the OpenJDK codebase, plus whatever fixes or tweaks the Amazon team may have added without waiting for their contributions to OpenJDK to be incorporated.
So, no, you should not have any special configuration needed for Corretto beyond what you would do for any other Java implementation such as a JDK from Pivotal, Oracle, Azul Systems, BellSoft, SAP, Adoptium/AdoptOpenJDK, Red Hat/IBM, etc.
Of course, for any of those JDK products, you would need to bundle with your app the necessary OpenJFX libraries, with some exceptions. At least two vendors provide implementations of Java that include the OpenJFX libraries: LibericaFX from BellSoft, and the “JDK FX” edition of Azul Platform Core (formerly ZuluFX) from Azul Systems.