@chelovek_rediska

Как исправить ошибку при использовании JavaFX в Java11?

Использую в проекте maven, javafx и java11. Подключаю все зависимости для JavaFX, классы видят всем импорты. Запускаю проект и выбрасываетcя ошибка:

Caused by: java.lang.IllegalAccessError: class com.sun.javafx.fxml.FXMLLoaderHelper (in unnamed module @0x41f64cac) cannot access class com.sun.javafx.util.Utils (in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.util to unnamed module @0x41f64cac


Ругается на строку в классе Main

Parent root = FXMLLoader.load(getClass().getResource("/sample.fxml"));


5ce59a9ce5c3d904604193.png
pom.xml
...
<dependencies>
        ...
 
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>11.0.2</version>
        </dependency>

        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>11.0.2</version>
        </dependency>

        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-graphics</artifactId>
            <version>11.0.2</version>
        </dependency>

        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-base</artifactId>
            <version>11.0.2</version>
        </dependency>

    </dependencies>
...
         <plugins>
          <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>0.0.2</version>
                <configuration>
                    <mainClass>Main</mainClass>
                </configuration>
            </plugin>
        </plugins>
  • Вопрос задан
  • 1179 просмотров
Решения вопроса 1
OrlovEvgenii
@OrlovEvgenii
golang developer / DevOps
До javafx 11 все вызываемые модули javafx были доступны из sdk по дефолту, с 11 версии модули ты должен подключать самостоятельно.

Caused by: java.lang.IllegalAccessError: class com.sun.javafx.fxml.FXMLLoaderHelper (in unnamed module @0x41f64cac) cannot access class com.sun.javafx.util.Utils (in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.util to unnamed module @0x41f64cac


тут говорится что в модуле javafx.graphics есть вызов к модулю com.sun.javafx.util, но он не может получить доступ т.к искомый модуль не экспортирован в проект.
просто подключи библиотеку com.sun.javafx.util к своему проекту.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы