0

Summary: GraalVM native-image reports the following error when compiling a simple JavaFX application:

Error occurred during initialization of boot layer

java.lang.module.FindException: Module javafx.controls not found

Error: Image build request failed with exit status 1

Command line used: "%GRAAL_BIN%"\native-image.cmd --module-path "c:\eclipse-javafx-sdk-19\lib" --add-modules javafx.controls,javafx.fxml,. -cp . application.GraalvmFX

Details:

Simple JavaFX application


package application;
    
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Separator;
import javafx.scene.control.ToolBar;
import javafx.scene.layout.BorderPane;

public class GraalvmFX extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            ToolBar toolbar = new ToolBar();
            Button b1 = new Button("New");
            Button b2 = new Button("Open");
            Button b3 = new Button("Save");
            Button b4 = new Button("Exit");
            
            toolbar.getItems().addAll(b1, b2, b3, new Separator(), b4);

            BorderPane root = new BorderPane();
            root.setTop(toolbar);
            Scene scene = new Scene(root,400,400);
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}

Running this app using command line:java.exe or javac.exe is not an issue:

C:\eclipse-workspace2\graalvmFX\src>java --version

java 17.0.4.1 2022-08-18 LTS Java(TM) SE Runtime Environment (build 17.0.4.1+1-LTS-2) Java HotSpot(TM) 64-Bit Server VM (build 17.0.4.1+1-LTS-2, mixed mode, sharing)

C:\eclipse-workspace2\graalvmFX\src>javac --module-path "C:\eclipse-javafx-sdk-19\lib" --add-modules javafx.controls,javafx.fxml -cp . application\GraalvmFX.java

C:\eclipse-workspace2\graalvmFX\src>java --module-path "C:\eclipse-javafx-sdk-19\lib" --add-modules javafx.controls,javafx.fxml -cp . application.GraalvmFX

But trying to compile the app using native-image fails:

C:\eclipse-workspace2\graalvmFX\src>"%GRAAL_BIN%"\native-image.cmd --version

GraalVM 22.2.0 Java 17 CE (Java Version 17.0.4+8-jvmci-22.2-b06)

C:\eclipse-workspace2\graalvmFX\src>"%GRAAL_BIN%"\native-image.cmd --module-path "c:\eclipse-javafx-sdk-19\lib" --add-modules javafx.controls,javafx.fxml application.GraalvmFX

Error occurred during initialization of boot layer

java.lang.module.FindException: Module javafx.controls not found

Error: Image build request failed with exit status 1

I have tried everything that I can think of!

Anderus
  • 1
  • 1
  • 1
    Have you tried the GluonFX plugin? See https://docs.gluonhq.com – José Pereda Oct 26 '22 at 18:29
  • No I haven't. Thanks for the suggestion. I will look into it. I am new to GraalVM and JavaFX. I am not sure why a simple command line execution of native-image is not sufficient to achieve this simple task. Thanks again José. I will look into GluonFX. – Anderus Oct 26 '22 at 21:34

0 Answers0