I'll take a look at it. At a minimum, the JBS issue you used will need
its title changed, since the stated title is wrong, so I'll suggest
something.
I can see your point about falling back to ordinary launching (running
it as a normal main program) if the JavaFX modules are not found rather
than hard failing. It might need additional testing to ensure no
regressions.
-- Kevin
On 5/1/2026 8:01 PM, Christopher Schnick wrote:
I submitted a JDK PR for this: https://github.com/openjdk/jdk/pull/31016
On 10/04/2026 07:51, Christopher Schnick wrote:
Yes, I was testing the launch without a module path.
The minimal improvement would be to fix the error message, because it
is wrong. The runtime components are there, they are just not
correctly configured with a module path.
Alternatively, I think this specific abort() call could also be
removed from the JDK code as JavaFX itself will also print its own
warning in this case.
On 10/04/2026 01:02, Kevin Rushforth wrote:
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?