Как заставить JavaFX и Java 11 работать в IntelliJ IDEA

С недавним выпуском Java 11 JavaFX больше не включен в JDK. У меня есть существующий проект JavaFX. Мне интересно узнать, как изменить его с проекта Java 10 на Java 11. Я уверен, что я правильно установил Java 11, и я могу изменить SDK по умолчанию с Java 10 на Java 11. Что я не делаю Я знаю, как я могу заставить JavaFX работать с Java 11.

Я скачал последнюю версию JavaFX здесь. Я извлек его в свою папку Java, которая содержит мои другие JDK, но я действительно не знаю, что делать в этот момент. Я прочитал несколько длинных руководств, которые описывают, как подключить проект с помощью Maven или Gradle, но я никогда не использовал их. Есть ли способ добавить поддержку JavaFX в меню IntelliJ?

1 ответ

Загрузите соответствующий JavaFX SDK для вашей операционной системы и разархивируйте его в нужное место, например /Users/your-user/Downloads/javafx-sdk-11.

  1. Создать проект JavaFX

введите описание изображения здесь

Создайте проект JavaFX. Укажите имя проекта, например, HelloFX, и местоположение. Когда проект открывается, классы JavaFX не распознаются. введите описание изображения здесь

  1. Набор JDK 11

Перейдите в Файл -> Структура проекта -> Проект и установите SDK проекта на 11. Вы также можете установить уровень языка на 11. Установите JDK 11 введите описание изображения здесь

  1. Создать библиотеку

Перейдите в Файл -> Структура проекта -> Библиотеки и добавьте JavaFX 11 SDK в качестве библиотеки в проект. Укажите папку lib в JavaFX SDK. введите описание изображения здесь

После применения библиотеки классы JavaFX будут распознаваться в среде IDE. введите описание изображения здесь

Предупреждение: если вы запустите сейчас проект, он скомпилируется, но вы получите эту ошибку:

Ошибка: отсутствуют компоненты времени выполнения JavaFX, и они необходимы для запуска этого приложения

Эта ошибка показана, поскольку средство запуска Java 11 проверяет, расширяет ли основной класс javafx.application.Application. Если это так, требуется наличие модуля javafx.graphics в модуле path.

  1. Добавить параметры виртуальной машины

Чтобы решить эту проблему, нажмите Run -> Edit Configurations... и добавьте следующие параметры VM:

--module-path% PATH_TO_FX% --add-modules = javafx.controls, javafx.fxml

Обратите внимание, что проект по умолчанию, созданный IntelliJ, использует FXML, поэтому наряду с javafx.controls требуется javafx.fxml. Если в вашем проекте используются другие модули, вам также необходимо добавить их. введите описание изображения здесь Нажмите "Применить" и закройте диалоговое окно.

  1. Запустить проект

Нажмите Run -> Run..., чтобы запустить проект, теперь он должен работать нормально.

Вы можете загрузить версию Java, которая включает JavaFX, с https://www.azul.com/downloads/zulu/zulufx/. В этом случае не требуется специальной настройки для запуска приложений JavaFx на Java 11. JavaFX будет работать так же, как на Java 8.

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