In Java 8 I can launch a JavaFX application with a preloader using the following method:
LauncherImpl.launchApplication(WindowMain.class, WindowMainPreloader.class,
new String[]{...});
I prefer to start it from code, like above, instead of using a deploy configuration, because I don't want the graphical interface to start every time I start the application, but only after some code that has computed that the application should run in GUI mode.
I was using the class "com.sun.javafx.application.LauncherImpl", but apparently in Java 9 all classes starting with "com.sun" are removed. So, how can I start the application with the preloader in Java 9?
from jdk 9, LauncherImpl not work jdk 10 - java.graphics module-info.java
all classes in package
com.sun.javafx.application
exported to special modules(java.base,javafx.controls,javafx.deploy,javafx.swing,javafx.web)
,So if you add module
(javafx.graphics)
in your module its not work,so use :
System.setProperty("javafx.preloader",path_class_loader)
as an alternative toLauncherImpl
forjkd 9
and aboveThere is a comment on the answer to this question:
How to create splash screen as a Preloader in JavaFX standalone application?
I didn't try it, but perhaps you could try setting that property and just launching your main app via the public
Application.launch(appClass, args)
API and perhaps the preloader will launch first.Looking into the code for
Application.launch
, it seems that this would work. Here is the code which is eventually invoked, copied from the Java 8 source:So you should be able to launch an app with a preloader using: