Just FYI, there has been discussion about this previously: https://mail.openjdk.org/pipermail/openjfx-dev/2018-June/021983.html https://mail.openjdk.org/pipermail/openjfx-dev/2018-October/022673.html
- Johan On Mon, May 4, 2026 at 9:42 PM Kevin Rushforth <[email protected]> wrote: > 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? > >>>> > >>> > >
