Java 9 JavaFX Preloader

Viewed 2752

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?

3 Answers

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 to LauncherImpl for jkd 9 and above

JDK 8:

LauncherImpl.launchApplication(Main.class, Preloader.class, arguments);

JDK 9:

System.setProperty("javafx.preloader", Preloader.class.getCanonicalName());
    Application.launch(Main.class, arguments);
Related