Error: JavaFX runtime components are missing - JavaFX 11 and OpenJDK 11 and Eclipse IDE
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
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
Admin
Updated on July 10, 2022Comments
-
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.Then I have included the
.jar
files from theJavaFX 11 SDK
in Eclipse IDE into a library package.Then I have included this library package into my
JAdaptiveMPC
project.I get no error in my code syntax, but still, I cannot compile my project.
Do you know why? I got the same error if I import all those
.jar
files from Maven instead of download theJavaFX 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
Still errors.
-
Heretic about 5 yearsHello! Thanks for your answer. But I have done that. Se my updated question.
-
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 andMain.class.getResource(...)
does not returnnull
. -
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 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/....