java.lang.NoClassDefFoundError: javafx/application/Application
I installed OpenJDK-11 as described here.
I ran sudo apt install openjfx
My java version:
$ java -version
openjdk version "11.0.3" 2019-04-16
OpenJDK Runtime Environment (build 11.0.3+7-Ubuntu-1ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.3+7-Ubuntu-1ubuntu1, mixed mode, sharing)
But still I get ava.lang.NoClassDefFoundError: javafx/application/Application
which indicates that the jre cannot find the FX classes.
Solution 1:
You are getting this error because your runtime PATH to javafx
is probably incorrect or missing.
Please, follow these steps:
Check the path of JavaFX. (example: /usr/share/openjfx/lib/
)
Then run command:
java --module-path $FX-PATH --add-modules javafx.controls -jar sample.jar
where $FX-PATH
should be set or replaced with mentioned JavaFX path.
If you need to add more modules, you can specify them in --add-modules
parameter.
(--add-modules javafx.controls,javafx.fxml
)
Solution 2:
Java FX is no longer packaged with the Java runtime. You must download and package the Jar with JavaFX runtime, see https://openjfx.io/openjfx-docs/ in order to learn how best to get this up and running.
Solution 3:
I recommend you to go with https://openjfx.io/openjfx-docs/ .i am using Eclipse IDE but it works for all IDE
Then you can refer to this global variable when setting the VM options as:
In IDE Right-click on project->Run As -> Run Configuration ->Arguments->VM Arguments
For Windows,
--module-path "\path to javafx\lib" --add-modules javafx.controls,javafx.fxml
For Linux,
--module-path /path to javafx/lib --add-modules javafx.controls,javafx.fxml