Плагин Gluon 2.7.0 был выпущен некоторое время назад, в основном для создания приложений Gluon Desktop или Gluon Mobile с Java 8.
Если вы используете Java 11, пока не выйдет новый выпускПлагин Gluon, вам придется обновить файл build.gradle.
Я бы посоветовал вам взглянуть на то, как начать работать с JavaFX 11 в этом руководстве , и проверить это вопрос о добавлении JavaFX 11 в проект в IntelliJ.
Когда вы используете плагин Gluon, вы создаете проект Gradle.И для этого вам не нужно загружать весь JavaFX SDK, вы можете включить его через зависимости от Maven Central.
Поэтому отредактируйте файл build.gradle
, который выглядит следующим образом:
apply plugin: 'java'
apply plugin: 'application'
repositories {
jcenter()
maven {
url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
}
}
mainClassName = 'com.gluonapplication.GluonDesktop'
dependencies {
compile 'com.gluonhq:particle:1.1.3'
}
И добавить следующие изменения:
В соответствии с руководством для Gradle , добавить способ найти, какая ваша платформа:
apply plugin: 'java'
apply plugin: 'application'
def currentOS = org.gradle.internal.os.OperatingSystem.current()
def platform
if (currentOS.isWindows()) {
platform = 'win'
} else if (currentOS.isLinux()) {
platform = 'linux'
} else if (currentOS.isMacOsX()) {
platform = 'mac'
}
repositories {
jcenter()
maven {
url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
}
}
mainClassName = 'com.gluonapplication.GluonDesktop'
Добавьте зависимости JavaFX для вашей платформы:
dependencies {
compile "org.openjfx:javafx-base:11:${platform}"
compile "org.openjfx:javafx-graphics:11:${platform}"
compile "org.openjfx:javafx-controls:11:${platform}"
compile "org.openjfx:javafx-fxml:11:${platform}"
Добавьте зависимость ControlsFX, совместимую с Java 9+ (по умолчанию используется 8.40.14, которыйбыло для Java 8) и добавьте зависимость javax.annotation
, которая не является частью Java 9 +:
compile 'com.gluonhq:particle:1.1.3'
compile 'org.controlsfx:controlsfx:9.0.0'
compile 'javax.annotation:javax.annotation-api:1.3.1'
}
Согласно руководству, вам необходимо добавить путь к модулюи добавьте необходимые модули к аргументам компилятора:
compileJava {
doFirst {
options.compilerArgs = [
'--module-path', classpath.asPath,
'--add-modules', 'javafx.controls,javafx.fxml'
]
}
}
И то же самое для аргументов запуска.В этом случае доступ к частному API (из-за некоторых требований ControlsFX) может быть выполнен с помощью --add-exports
:
run {
doFirst {
jvmArgs = [
'--module-path', classpath.asPath,
'--add-modules', 'javafx.controls,javafx.fxml',
'--add-exports', 'javafx.base/com.sun.javafx.runtime=ALL-UNNAMED',
'--add-exports', 'javafx.graphics/com.sun.javafx.scene=ALL-UNNAMED',
'--add-exports', 'javafx.graphics/com.sun.javafx.scene.traversal=ALL-UNNAMED',
]
}
}
Сохраните и синхронизируйте изменения, и вы должнывозможность запуска вашего проекта Gluon Desktop.