Ошибка: отсутствуют компоненты времени выполнения JavaFX - JavaFX 11 и OpenJDK 11 и Eclipse IDE - PullRequest
2 голосов
/ 19 апреля 2019

У меня есть классическая проблема: использование JavaFX 11 с OpenJDK 11 вместе с Eclipse IDE.

Error: JavaFX runtime components are missing, and are required to run this application

У меня OpenJDK 11.0.2

dell@dell-pc:~$ java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
dell@dell-pc:~$ 

И у меня также есть JavaFX 11 SDK. Кстати! Я использую Lubuntu Linux 18.10, если вам интересно. enter image description here

Затем я включил файлы .jar из JavaFX 11 SDK в Eclipse IDE в пакет библиотеки.

enter image description here

Затем я включил этот библиотечный пакет в мой JAdaptiveMPC проект. enter image description here

В моем синтаксисе кода нет ошибок, но я не могу скомпилировать свой проект. enter image description here

Знаете почему? Я получаю ту же ошибку, если импортирую все эти .jar файлы из Maven вместо загрузки JavaFX SDK и импортирую в библиотеку.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>Control</groupId>
  <artifactId>JAdaptiveMPC</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <dependencies>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx</artifactId>
        <version>13-ea+5</version>
        <type>pom</type>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-base</artifactId>
        <version>13-ea+5</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-controls</artifactId>
        <version>13-ea+5</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-graphics</artifactId>
        <version>13-ea+5</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-swing</artifactId>
        <version>13-ea+5</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-web</artifactId>
        <version>13-ea+5</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-media</artifactId>
        <version>13-ea+5</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-fxml</artifactId>
        <version>13-ea+5</version>
    </dependency>
  </dependencies>
</project>

Продолжить

Я добавил это в Run Configuration

enter image description here

А потом я пытаюсь бежать enter image description here

Все еще ошибки.

1 Ответ

2 голосов
/ 19 апреля 2019

Ваша проблема не в компиляции проекта, а в его запуске.Поскольку ваш main определен в вашем расширении Application, для запуска проекта потребуется запуск JavaFX в пути к вашему модулю при запуске.

Поэтому вы можете либо передать ваш main в класс, отличный от вашего Applicationили добавьте модули JavaFX с аргументами виртуальной машины:

--module-path="<javafx-root>\lib" --add-modules="javafx.base,javafx.controls,..."

Подробнее см. this .

...