Настройка 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(); } }
- Запустите приложение.
В результате у вас должно открыться окно со следующим содержимым: