Как исправить ошибку Error occurred during initialization of boot layer java.lang.module.FindException: Module javafx.fxml not found
Делаю тестовый проект с JavaFX, SQLite в Intellij Idea на MAVEN. JavaFX и sqlite писал вручную в dependency. Плюс использую fxml, все работает. В процессе столкнулся с ошибкой, которую решил исправить дебагером, но когда запускаю Debug. То появляется ошибка:
Error occurred during initialization of boot layer
java.lang.module.FindException: Module javafx.fxml not found
Гугли все что можно, испробовал кучу всего. Использовал вот этот ресурс: https://openjfx.io/openjfx-docs/#IDE-Intellij
- Вопрос такой. Нашел вот такой путь C:\Users\User.m2\repository\org\openjfx, там лежит javafx-controls и javafx-fxml, а также множество других модулей. Если я правильно понял, то именно их надо указывать в Run-Edit Configurations-VM Options
--module-path "C:\Users\User\.m2\repository\org\openjfx" --add-modules javafx.controls,javafx.fxml
Типо того, но здесь нужно указать путь до самого модуля. Если делаю так:
--module-path "C:\Users\User\.m2\repository\org\openjfx\javafx-controls\15.0.1" --add-modules javafx.controls,javafx.fxml
То ошибку пишет, что не может найти javafx-fxml. Так вопрос а как указать два адреса, или как это обойти. Скинул pom.xml на всякий случай
<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 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>pass-keeper</groupId>
<artifactId>pass-keeper</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>15.0.1</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>15.0.1</version>
</dependency>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.34.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.1</version>
<configuration>
<mainClass>pass.App</mainClass>
<executable>E:\Develop Tools\Java JDK\bin\java</executable>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>
App.Class
</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Ответы (2 шт):
Указывая
--module-path "C:\Users\User\.m2\repository\org\openjfx\javafx-controls\15.0.1"
Вы ссылаетесь только на модуль javafx-controls
1 вариант: качаем весь sdk https://gluonhq.com/products/javafx/ и указываем типа: --module-path C:/javafx/lib
2 вариант если хочется указать несколько директорий: --module-path dir1;dir2;dirN
У меня тоже при запуске тестовой программы javaFx выскакивали подобные сообщения об ошибке,пока я не добавил в проект библиотеки jdk-19.До этого у меня в проекте были только библиотеки javafx-sdk-19.