Я пытаюсь разработать проект Gradle, включающий JavaFX.
Спецификации: Linux Mint 18.3, Java 11, Eclipse 2019-06, JavaFX: либо 13, либо 11 ...
Несколько полезных ответов на вопросы помогли мне за последние часы: этот говорит мне (с полезным клонируемым примером), как настроить вещи, по крайней мере, используя файл Java для держите основной класс моего проекта (на самом деле я в конечном итоге хочу написать весь мой код в Groovy в идеале), чтобы преодолеть ошибку «отсутствуют компоненты времени выполнения JavaFX, и они необходимы для запуска этого приложения».
Но Eclipse не нравится, когда вы добавляете последний шаг: файл module-info. java. На данный момент я должен признаться, что ничего не знаю о «модулях» Eclipse: только то, что этот неизвестный аспект IDE иногда вызывал у меня неприятные головные боли в прошлом. Вероятно, настало время прочитать об этом сейчас.
Я также должен уточнить, что в этот момент задачи Gradle build
и installdist
(или assemble
) работают нормально в CLI. Я беспокоюсь только об избавлении от этих ужасных меток ошибок Eclipse «белый крестик в красном поле»:
- в module-info. java: «javafx.controls не может быть разрешен в модуль "
- в Main. java: все классы JavaFX имеют это рядом с ними" Приложение [et c.] не может быть преобразовано в тип ", и все импорты имеют" Тип javafx .scene.Scene [et c.] недоступен "
В этом ответе говорится, что нужно загрузить JavaFX-JDK, а затем добавить различные файлы .jar из него в ваш проект Модульный путь. Я сделал это: ужасные ошибки исчезли!
В следующий раз, когда я сделал Gradle - Refresh
, они все вернулись. Я проверил путь модуля: все эти файлы .jar были удалены. Как я могу остановить функционирование Gradle-Eclipse, связанное с моим настроенным путем к модулю?
edit
re комментарий Slaw: да, уже используя
id 'org.openjfx.javafxplugin' version '0.0.8'
... мой блок javafx build.gradle выглядит следующим образом:
javafx {
version = "13"
modules = [ 'javafx.controls', 'javafx.fxml' ]
}
(NB. Теперь я попытался поэкспериментировать, добавив javafx.graphics и javafx. base 'to выше.) Проблема в том, что Gradle - Refresh
, тем не менее, вызывает вышеупомянутое явление «исчезающих .jars».
Я попытался добавить это в свой блок плагинов:
id 'org.javamodularity.moduleplugin' version '1.6.0' apply true/false // NB tried both
. .. нет go: Gradle - Refresh
приводит к непонятной (для меня) ошибке:
An exception occurred applying plugin request [id: 'org.openjfx.javafxplugin', version: '0.0.8']
> Failed to apply plugin [id 'org.openjfx.javafxplugin']
> Could not create task ':configJavafxRun'.
> Could not create task of type 'ExecTask'.
> Could not generate a decorated class for class org.openjfx.gradle.tasks.ExecTask.
> org/javamodularity/moduleplugin/tasks/ModuleOptions