Настройка JavaFX проекта с помощью Gradle 5 в IDEA 2019.3
Наикратчайшая информация
Ключевые особенности настройки Gradle можно посмотреть в документации на openjfx.io. Пример настроенного проекта можно посмотреть в примере на GitHub
Развёрнутое описание
В современный JDK библиотека JavaFX не входит, поэтому её необходимо указывать в качестве зависимости для каждого проекта отдельно. Вы можете использовать одно из руководств на openjfx.io, если выбранные технологии для вас не подходят.
Для управления зависимостями в Java-проектах используются системы Maven и Gradle. Каждая из них позволяет выполнять все задачи по управлению жизненным циклом проектов: скачивать зависимости, передавать параметры компиляции, осуществлять запуск и пакетирование результатов. Выбор между ними зависит от деталей выполняемого проекта и предпочтений конкретной команды по разработке ПО.
Данное руководство использует Gradle ввиду знакомства составителя с данной системой сборки.
1. Создайте Gradle-проект в IDEA
- Выберите пункт меню File->New->Project…
-
Выберите тип проекта
Gradle.
-
В появившемся окне заполните информацию о проекте
- Заполните имя проекта, например
FXAppOne - Раскройте информацию об артефакте,
Artifact coodrinatesи укажите дополнительные параметры. - Рекомендуется указать
GroupId. Для нашего проекта корректной будетru.ac.uniyar.apps.fxappone.
Заполненное окно должно выглядеть таким образом:

- Заполните имя проекта, например
- Нажмите на кнопку
Finish.
2. Добавьте стартовый класс в проект
- Слева в структуре проекта раскройте папки
src,main. - На папке
mainнажмите правой кнопкой и выберите пункт менюNew->Java Class. -
В появившемся окне введите имя класса
ru.ac.uniyar.apps.fxappone.Mainи нажмите Enter.
-
В созданном классе добавьте метод
main:public static void main(String args[]) { System.out.println("It works!"); } -
Откройте файл
build.gradleи внесите в него следующие изменения:-
В секцию
pluginsдобавьте:id 'application' -
В корне файла укажите имя стартового класса. Оно должно совпадать с созданным ранее классом:
mainClassName = "ru.ac.uniyar.apps.fxappone.Main" -
В качестве версии языка Java укажите 11:
sourceCompatibility = 11
Полностью файл конфигурации будет выглядеть следующим образом:
plugins { id 'application' id 'java' } group 'ru.ac.uniyar.apps.fxappone' version '1.0-SNAPSHOT' sourceCompatibility = 11 mainClassName = 'ru.ac.uniyar.apps.fxappone.Main' repositories { mavenCentral() } dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' } -
- Загрузите изменения из
build.gradle-файла в IDEA.- Откройте панель
Gradleсправа. - Нажмите на значок из вращающихся стрелочек, Reimport All Gradle Projects.
IDEA считает информацию из
build.gradle-файла. Если файл был корректно обработан, тогда окно будет иметь следующее состояние:
- Откройте панель
- Запустите проект.
- Откройте панель
Gradleсправа. - Выберите пункт Application->Run
- Нажмите на него 2 раза - он запустится.
В будущем можно будет запускать данную задачу стандартным образом, с помощью сочетания клавиш
Shift+F10. - Откройте панель
3. Добавьте библиотеку Java FX в Gradle-проект
-
Откройте файл
build.gradleи отредактируйте его следующим образом:-
В секцию
pluginsдобавьтеid 'org.openjfx.javafxplugin' version '0.0.8' -
Добавьте новую секцию
javafxсо следующими настройками:javafx { version = "13" modules = [ 'javafx.controls', 'javafx.fxml' ] }
Финальный
build.gradleдолжен выглядеть следующим образом:plugins { id 'application' id 'java' id 'org.openjfx.javafxplugin' version '0.0.8' } group 'ru.ac.uniyar.apps.fxappone' version '1.0-SNAPSHOT' sourceCompatibility = 11 mainClassName = 'ru.ac.uniyar.apps.fxappone.Main' repositories { mavenCentral() } javafx { version = '13' modules = [ 'javafx.controls', 'javafx.fxml' ] } dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' } -
- Импортируйте настройки Gradle в IDEA как это было сделано в предыдущем разделе, пункт 6.
-
Замените файл описания класса
ru.ac.uniyar.apps.fxappone.Mainна следующее:package ru.ac.uniyar.apps.fxappone; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.layout.StackPane; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage stage) { String javaVersion = System.getProperty("java.version"); String javafxVersion = System.getProperty("javafx.version"); Label label = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + "."); Scene scene = new Scene(new StackPane(label), 640, 480); stage.setScene(scene); stage.show(); } public static void main(String[] args) { launch(); } } - Запустите приложение.
В результате у вас должно открыться окно со следующим содержимым:
