Error: JavaFX runtime components are missing - JavaFX 11 and OpenJDK 11 and Eclipse IDE

41,370

Solution 1

Your problem is not compiling the project, but running it. Since your main is defined in your Application-extension, running the project will require JavaFX in your module path on startup.

So either outsource your main into a class different from your Application or add the JavaFX modules with VM arguments:

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

See this for some more info.

Solution 2

enter image description here

In eclipse I selected this MODULE PATH option from the dropdown and it worked for me - I didnt need the vm agruments. Make sure the JavaFx Jars are added in the ModulePath under Dependencies Tab (Eclipse >> Project >> Configurations)

Solution 3

The question is old but this how it did work for me in intellij(linux) :

1- go to run -> edit configurations

2- add the path in VM Options :

--module-path yourpath/lib --add-modules javafx.controls,javafx.fxml

Share:
41,370
Admin
Author by

Admin

Updated on July 10, 2022

Comments

  • Admin
    Admin almost 2 years

    I have this classical issue: Using JavaFX 11 with OpenJDK 11 together with Eclipse IDE.

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

    I have 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:~$ 
    

    And I also have JavaFX 11 SDK. By the way! I'm using Lubuntu Linux 18.10 if you wonder. enter image description here

    Then I have included the .jar files from the JavaFX 11 SDK in Eclipse IDE into a library package.

    enter image description here

    Then I have included this library package into my JAdaptiveMPC project. enter image description here

    I get no error in my code syntax, but still, I cannot compile my project. enter image description here

    Do you know why? I got the same error if I import all those .jar files from Maven instead of download the JavaFX SDK and import it into a library.

    <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>
    

    Continue

    I have added this in the Run Configuration

    enter image description here

    And then I try to run enter image description here

    Still errors.

  • Heretic
    Heretic about 5 years
    Hello! Thanks for your answer. But I have done that. Se my updated question.
  • Reizo
    Reizo about 5 years
    @Heretic sorry, I've checked your post more carefully. You're obviously calling FXMLLoader.setLocation​(URL), but apparently your resource (\JAdaptiveMPC...\gui.fxml) cannot be found. So check if your location is correct and Main.class.getResource(...) does not return null.
  • Trixie the Cat
    Trixie the Cat about 4 years
    @Reizo can you please explain how to: "add the JavaFX modules with VM arguments" as you stated in your answer. I'm experiencing this same issue and have been unsuccessful thus far in correcting it. Thank you
  • Reizo
    Reizo about 4 years
    @TrixietheCat You have to pass the given arguments when launching your program with java. Usually your IDE does that under the hood and lets you configure what arguments to pass to the VM. Either see this example or look for how to specify vm arguments in Eclipse/IntelliJ/....