JavaFX11 и Intellij

Я следовал инструкциям в этой ссылке https://openjfx.io/openjfx-docs/, и когда я запускаю пример javafx, я получаю эту ошибку

Error:(3, 26) java: cannot access javafx.application.Application
  bad class file: C:\Program Files\Java\OpenJDK\javafx-sdk-11.0.1\lib\javafx.graphics.jar(javafx/application/Application.class)
    class file has wrong version 54.0, should be 52.0
    Please remove or make sure it appears in the correct subdirectory of the classpath.

и когда я иду в Project Structure > Project/Modules, для JDK устанавливается опция JDK11 VM:

--module-path C:\Program Files\Java\OpenJDK\javafx-sdk-11.0.1\lib --add-modules=javafx.controls,javafx.fxml

Я попытался перейти в "Настройки"> "Построение, выполнение, развертывание"> "Компилятор"> "Версия байт-кода проекта Java Compiler" была установлена ​​на 8, и я изменил ее на 11, а первая ошибка исчезла, но я получил новую ошибку

Error:java: invalid target release: 11

Я искал в интернете, и кто-то сказал: .idea\compiler.xml и установить цель на 11, но это уже установлено для 11, но я получаю ошибку

2 ответа

Перейдите в Файл> Структура проекта> Модули> Источник

Установите для уровня языка значение 11 (если 11 недоступно, установите значение "X-Experimental Features")

Образ

Я только что столкнулся с ошибкой, тоже не смог найти правильного решения, поэтому разобрался сам.

Местоположение проблемы: pom.xml - файл maven

Иногда проблема может возникнуть с другим объектом JavaFX, например, с FXMLLoader или EventHandler:

  1. java: cannot access javafx.fxml.FXMLLoader bad class file: ... class file has wrong version 55.0, should be 53.0
  2. java: cannot access javafx.event.EventHandler bad class file: /Users/john/.m2/repository/org/openjfx/javafx-base/12/javafx-base-12-mac.jar!/javafx/event/EventHandler.class class file has wrong version 55.0, should be 53.0

Исправленная версия файла 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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>hkr</groupId>
    <artifactId>CommunicationTest</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>9</maven.compiler.source>
        <maven.compiler.target>9</maven.compiler.target>
    </properties>

Неправильно (предыдущая версия):

      <?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>hkr</groupId>
    <artifactId>CommunicationTest</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

Проблема в теге свойств , целевая версия была ниже версии JDK (9.0.1), что вызывало в моем случае проблему "class file has wrong version 55.0, should be 53.0".

Я просто изменил цель на 9 вместо 1,8, и это было исправлено.

Другие вопросы по тегам