проект javafx 11, модуль не найден - PullRequest
2 голосов
/ 28 марта 2020

Я работаю над проектом JavaFX, я начал использовать Netbeans без проблем, затем переключился на IntelliJ Idea, где у меня возникли проблемы. Сначала некоторые операции импорта, такие как java. sql и javafx, не работали, поэтому я добавил файл module-info. java в папку sr c, куда я поместил все необходимые операции импорта, например:

module blood {
    requires javafx.fxml;
    requires javafx.controls;
    requires javafx.graphics;
    requires java.sql;
    requires java.desktop;
    requires jdk.jfr;
    opens sample;
}

Модуль имеет то же имя, что и проект "Кровь". Теперь у меня нет ошибок, связанных с импортом, но когда я запускаю свой проект, я получаю это:

"C:\Program Files\Java\jdk-11.0.2\bin\java.exe" --module-path C:\Users\USER\Downloads\javafx-sdk-11.0.2\lib --add-modules=javafx.controls,javafx.graphics,javafx.fxml --add-modules javafx.base,javafx.graphics --add-reads javafx.base=ALL-UNNAMED --add-reads javafx.graphics=ALL-UNNAMED -Djava.library.path=C:\Users\USER\Downloads\javafx-sdk-11.0.2 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.3.4\lib\idea_rt.jar=50526:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.3.4\bin" -Dfile.encoding=UTF-8 -m blood/sample.Main
Error occurred during initialization of boot layer
java.lang.module.FindException: Module blood not found

Process finished with exit code 1

Я также добавил к параметрам VM эту строку:

--module-path "C:\Users\USER\Downloads\javafx-sdk-11.0.2\lib" --add-modules=javafx.controls,javafx.graphics,javafx.fxml

Что должно я делаю?

1 Ответ

2 голосов
/ 28 марта 2020
--module-path C:\Users\USER\Downloads\javafx-sdk-11.0.2\lib

недостаточно для загрузки модуля blood, который вы создали для своего приложения. С другой стороны, аргумент командной строки

-m blood/sample.Main

ожидает, что модуль blood с классом sample.Main запустит приложение. Вот почему ошибка выглядит следующим образом:

java.lang.module.FindException: Module blood not found

Таким образом, решением этой проблемы было бы добавление выходной папки, в которой сборка модуля blood.

--module-path C:\Users\USER\Downloads\javafx-sdk-11.0.2\lib;<project-output-diretory>

openjfx-docs раздел "JavaFX и IntelliJ" дополнительно содержит подзаголовок c "Modular from IDE", в котором говорится о "параметрах добавления виртуальной машины", которые должны быть понятны в этой конфигурации.

...