OpenJFX 14 с maven и IntelliJ: невозможно запустить приложение

Я пытаюсь использовать OpenJFX в проекте Java JDK 14 на IntelliJ. В моем проекте есть несколько модулей IntelliJ, каждый из которых имеет файл pom.xml.

В модуле IntelliJ, который содержит мой основной, я добавил JFX в качестве зависимости:

<dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-controls</artifactId>
    <version>14</version>
    <type>pom</type>
</dependency>

И в моем pom.xml верхнего уровня я добавил плагин JFX:

<plugin>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-maven-plugin</artifactId>
    <version>0.0.4</version>
    <configuration>
        <mainClass>fr.efrei.wiemetarsene.caspersky.app.Main</mainClass>
    </configuration>
</plugin>

Но когда я пытаюсь запустить свое приложение с помощью:

mvn javafx:run

Я получаю следующую ошибку:

[ERROR] Failed to execute goal org.openjfx:javafx-maven-plugin:0.0.4:run (default-cli) on project caspersky: Error: Output directory is empty, compile first -> [Help 1]

Я пробовал бежать:

mvn compiler:compile

перед этим, но результат точно такой же. Вы хоть понимаете, почему это не работает?


person Ombrelin    schedule 08.05.2020    source источник
comment
Отвечает ли это на ваш вопрос? Java 13: почему отсутствуют компоненты среды выполнения javaFX?   -  person Aniket Sahrawat    schedule 23.05.2020
comment
Удалось ли решить проблему? У меня такая же ошибка и пока нет решения.   -  person Agata Kobusinska    schedule 09.12.2020
comment
Здравствуйте, к сожалению, я не нашел решения этой проблемы. Дайте мне знать, если вы это сделаете!   -  person Ombrelin    schedule 09.12.2020
comment
Я устранил проблему, хотя не совсем уверен в своих действиях. Я использовал плагин из ответа ниже с версией 0.0.5. Затем 'mvn install' 'cd moduleWithMainClass' и с этого уровня модуля 'mvn javafx: run'. Попробуйте :)   -  person Agata Kobusinska    schedule 09.12.2020
comment
Хорошо, спасибо, не стесняйтесь публиковать ответ, я его принимаю   -  person Ombrelin    schedule 09.12.2020
comment
Неправильное значение упаковки в pom.xml может привести к пустому выводу, например pom, особенно в проекте с несколькими модулями. Я имею в виду, что могли произойти некоторые операции рефакторинга, которые неосознанно изменили значение упаковки с jar на pom.   -  person ElliotMok    schedule 02.03.2021


Ответы (2)


У меня есть многомодульный проект javafx, и я столкнулся с той же ошибкой. Основной класс находится в моем модуле просмотра. В pom файле у меня есть:

<plugin>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-maven-plugin</artifactId>
    <version>0.0.5</version>
    <configuration>
        <source>14</source>
        <target>14</target>
        <release>14</release>
        <mainClass>Main</mainClass>
    </configuration>
</plugin>

затем в типе терминала:

mvn install
cd View
mvn javafx:run

После внесения некоторых изменений в свой код я часто получаю странные ошибки, такие как отсутствие компонентов. Затем повторение вышеуказанных шагов решает проблему.

person Agata Kobusinska    schedule 11.12.2020

Отсюда README вы можете попробовать следующие изменения:

<plugin>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-maven-plugin</artifactId>
    <version>0.0.4</version>
    <configuration>
        <source>14</source>
        <target>14</target>
        <release>14</release>
        <mainClass>fr.efrei.wiemetarsene.caspersky.app.Main</mainClass>
    </configuration>
</plugin>

<удар>

и далее скомпилируйте свой проект, используя

mvn javafx:compile

но поскольку могут быть устаревшими, вы можете попробовать выполнить

mvn compile

or

mvn clean javafx:jlink
person Naman    schedule 08.05.2020
comment
Спасибо за ваш ответ, я только что попробовал, но maven выдал мне эту ошибку: не удалось найти цель «скомпилировать» в плагине org.openjfx: javafx-maven-plugin: 0.0.4 - person Ombrelin; 09.05.2020
comment
@Ombrelin Да, похоже, что документ устарел, см. Правку в ответе. - person Naman; 09.05.2020
comment
Я пробовал оба: mvn clean javafx: jlink дает мне исключение NullPointerExcep, а mvn compile дает мне неверный целевой выпуск: 14 - person Ombrelin; 09.05.2020