This is intentional and is still useful to allow launching JavaFX
applications that don't have a main program. It also ensures that the
JavaFX runtime is launched before the main program runs if there is a
main program.
How are you launching your app that you are running into this? If the
JavaFX modules are on the module path the Java launcher should find it.
If the JavaFX modules are NOT on the module path, but instead on the
classpath, then that is an unsupported mode. You may run into other
problems in that mode, but this is the most noticeable one.
-- Kevin
On 4/9/2026 7:37 AM, Christopher Schnick wrote:
I was just playing around with the launch process for JavaFX and
encountered the known issue "JavaFX runtime components are missing,
and are required to run this application" when the Main class extends
Application.
Then, I wanted to look where this message is printed from and how the
launch process is handled to see if there are possible improvements
there.
Now if I see this correctly, the non-modular JavaFX Application
launching is done from the JDK itself? The code is still included in
the JDK in java.base at sun.launcher.LauncherHelper.FXHelper and not
decoupled from the JDK. So this can't even be changed in the jfx
codebase.
Is this intentional or a leftover, i.e. would it be possible to even
change this or is that some legacy thing which can't be changed?