Ошибки при запуске Spring Boot + JavaFX приложения

Подскажите пожалуйста. При запуске приложения получаю ошибку:

org.springframework.cglib.core.CodeGenerationException: java.lang.IllegalAccessException-->module testSBJFX does not open test.testsbjfx to unnamed module @6c939f49 at org.springframework.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:471) ~[spring-core-6.0.7.jar:6.0.7] at org.springframework.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:367) ~[spring-core-6.0.7.jar:6.0.7] at org.springframework.cglib.proxy.Enhancer.generate(Enhancer.java:575) ~[spring-core-6.0.7.jar:6.0.7] at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.lambda$new$1(AbstractClassGenerator.java:103) ~[spring-core-6.0.7.jar:6.0.7] at org.springframework.cglib.core.internal.LoadingCache.lambda$createEntry$1(LoadingCache.java:52) ~[spring-core-6.0.7.jar:6.0.7] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] at org.springframework.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:57) ~[spring-core-6.0.7.jar:6.0.7] at org.springframework.cglib.core.internal.LoadingCache.get(LoadingCache.java:34) ~[spring-core-6.0.7.jar:6.0.7] at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:126) ~[spring-core-6.0.7.jar:6.0.7] at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:313) ~[spring-core-6.0.7.jar:6.0.7] at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:562) ~[spring-core-6.0.7.jar:6.0.7] at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:407) ~[spring-core-6.0.7.jar:6.0.7] at [email protected]/org.springframework.context.annotation.ConfigurationClassEnhancer.createClass(ConfigurationClassEnhancer.java:138) ~[spring-context-6.0.7.jar:na] at [email protected]/org.springframework.context.annotation.ConfigurationClassEnhancer.enhance(ConfigurationClassEnhancer.java:109) ~[spring-context-6.0.7.jar:na] at [email protected]/org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:514) ~[spring-context-6.0.7.jar:na] at [email protected]/org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:304) ~[spring-context-6.0.7.jar:na] at [email protected]/org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:358) ~[spring-context-6.0.7.jar:na] at [email protected]/org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:150) ~[spring-context-6.0.7.jar:na] at [email protected]/org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:747) ~[spring-context-6.0.7.jar:na] at [email protected]/org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:565) ~[spring-context-6.0.7.jar:na] at [email protected]/org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) ~[spring-boot-3.0.5.jar:na] at [email protected]/org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434) ~[spring-boot-3.0.5.jar:na] at [email protected]/org.springframework.boot.SpringApplication.run(SpringApplication.java:310) ~[spring-boot-3.0.5.jar:na] at [email protected]/org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:150) ~[spring-boot-3.0.5.jar:na] at testSBJFX/test.testsbjfx.TestClass.init(TestClass.java:16) ~[classes/:na] at [email protected]/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:825) ~[javafx-graphics-19.0.2.1-win.jar:na] at [email protected]/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196) ~[javafx-graphics-19.0.2.1-win.jar:na] at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na] Caused by: java.lang.IllegalAccessException: module testSBJFX does not open test.testsbjfx to unnamed module @6c939f49 at java.base/java.lang.invoke.MethodHandles.privateLookupIn(MethodHandles.java:259) ~[na:na] at org.springframework.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:461) ~[spring-core-6.0.7.jar:6.0.7] ... 27 common frames omitted

Exception in Application init method Exception in thread "main" java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1082) Caused by: java.lang.RuntimeException: Exception in Application init method at [email protected]/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:896) at [email protected]/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: org.springframework.cglib.core.CodeGenerationException: java.lang.IllegalAccessException-->module testSBJFX does not open test.testsbjfx to unnamed module @6c939f49 at org.springframework.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:471) at org.springframework.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:367) at org.springframework.cglib.proxy.Enhancer.generate(Enhancer.java:575) at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.lambda$new$1(AbstractClassGenerator.java:103) at org.springframework.cglib.core.internal.LoadingCache.lambda$createEntry$1(LoadingCache.java:52) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.springframework.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:57) at org.springframework.cglib.core.internal.LoadingCache.get(LoadingCache.java:34) at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:126) at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:313) at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:562) at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:407) at [email protected]/org.springframework.context.annotation.ConfigurationClassEnhancer.createClass(ConfigurationClassEnhancer.java:138) at [email protected]/org.springframework.context.annotation.ConfigurationClassEnhancer.enhance(ConfigurationClassEnhancer.java:109) at [email protected]/org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:514) at [email protected]/org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:304) at [email protected]/org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:358) at [email protected]/org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:150) at [email protected]/org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:747) at [email protected]/org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:565) at [email protected]/org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) at [email protected]/org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434) at [email protected]/org.springframework.boot.SpringApplication.run(SpringApplication.java:310) at [email protected]/org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:150) at testSBJFX/test.testsbjfx.TestClass.init(TestClass.java:16) at [email protected]/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:825) ... 2 more Caused by: java.lang.IllegalAccessException: module testSBJFX does not open test.testsbjfx to unnamed module @6c939f49 at java.base/java.lang.invoke.MethodHandles.privateLookupIn(MethodHandles.java:259) at org.springframework.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:461) ... 27 more

Само приложение пишу на Java 17.

Класс TestSbjfxApplication

@SpringBootApplication
public class TestSbjfxApplication {

    public static void main(String[] args) {
        Application.launch(TestClass.class, args);
    }

}

Класс

public class TestClass extends Application {

    ConfigurableApplicationContext applicationContext;

    @Override
    public void init() {
        applicationContext = new SpringApplicationBuilder(TestSbjfxApplication.class).run();
    }

    @Override
    public void stop() {
        applicationContext.close();
        Platform.exit();
    }

    @Override
    public void start(Stage stage) {
        applicationContext.publishEvent(new StageReadyEvent(stage));
    }

    static class StageReadyEvent extends ApplicationEvent {
        public StageReadyEvent(Stage stage) {
            super(stage);
        }

        public Stage getStage() {
            return ((Stage) getSource());
        }
    }
}

Класс StageInitializer

@Component
public class StageInitializer implements ApplicationListener<TestClass.StageReadyEvent> {
    @Override
    public void onApplicationEvent(TestClass.StageReadyEvent event) {
        Stage stage = event.getStage();
    }
}

module-info.java

module testSBJFX {
    requires javafx.graphics;
    requires spring.context;
    requires javafx.controls;
    requires javafx.fxml;
    requires spring.boot;
    requires spring.boot.autoconfigure;

    exports test.testsbjfx to javafx.fxml,javafx.controls,javafx.graphics;
    opens test.testsbjfx to javafx.fxml,javafx.controls,javafx.graphics;
}

Файл pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>test</groupId>
    <artifactId>testSBJFX</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>testSBJFX</name>
    <description>testSBJFX</description>
    <properties>
        <java.version>17</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-graphics</artifactId>
            <version>19.0.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>19.0.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>19.0.2.1</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

В VM options

--module-path="C:\Program Files\Java\javafx-sdk-19.0.2.1\lib"
--add-modules=javafx.base,javafx.controls,javafx.fxml,javafx.graphics

Ответы (0 шт):