Как уже упоминалось в комментариях, Starting Guide - это то место, с которого нужно начинать с Java 11 и JavaFX 11.
Ключ к работе, как вы делали до Java 11, заключается в том, чтобы понять, что:
- JavaFX 11 больше не является частью JDK
- Вы можете получить его в различных вариантах, либо в виде SDK, либо в виде обычных зависимостей (maven / gradle).
- Вам нужно будет включить его в путь к модулю вашего проекта, даже если ваш проект не является модульным.
JavaFX project
Если высоздать обычный проект JavaFX по умолчанию в IntelliJ (без Maven или Gradle). Я бы посоветовал вам загрузить SDK с здесь .Обратите внимание, что также существуют jmod, но для немодульного проекта предпочтителен SDK.
Это простые шаги для запуска проекта по умолчанию:
- Создание проекта JavaFX
- Установите JDK 11 (укажите на локальную версию Java 11)
- Добавьте JavaFX 11 SDK в качестве библиотеки.URL может быть что-то вроде
/Users/<user>/Downloads/javafx-sdk-11/lib/
.После этого вы заметите, что классы JavaFX теперь распознаются в редакторе.
Перед запуском проекта по умолчанию вам просто нужно добавить их к параметрам виртуальной машины:
--module-path /Users/<user>/Downloads/javafx-sdk-11/lib --add-modules=javafx.controls,javafx.fxml
Выполнить
Maven
Если вы используете Maven для создания своего проекта, выполните следующие действия:
- Создайте проект Maven с использованием архетипа JavaFX
- Установить JDK 11 (указать на локальную версию Java 11)
Добавить зависимости JavaFX 11.
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>11</version>
</dependency>
</dependencies>
Как только вы это сделаете, вы заметите, что классы JavaFX теперь распознаются в редакторе.
Вы заметите, что Maven управляет необходимыми зависимостями для вас: он добавит javafx.base и javafx.graphics для javafx.controls, но самое главное, он добавит необходимый классификатор на основе вашегоПлатформа.В моем случае Mac.
Вот почему ваши jar org.openjfx:javafx-controls:11
являются пустыми , потому что есть три возможных классификатора (платформы Windows, Linux и Mac), которые содержат все классы инативная реализация.
Если вы все еще хотите пойти в репозиторий .m2 и взять оттуда зависимости вручную, убедитесь, что вы выбрали правильную (например, .m2/repository/org/openjfx/javafx-controls/11/javafx-controls-11-mac.jar
)
Замените стандартные модули maven на здесь .
Запустите mvn compile exec:java
, и оно должно работать.
Аналогично работает и для проектов Gradle, как подробно описано здесь .
РЕДАКТИРОВАТЬ
Упомянутое руководство по началу работы содержитобновленная документация и примеры проектов для IntelliJ: