I've followed a tutorial precisely and I can't seem to get it to work. The tutorial is under JavaFX and Intellij
Non-modular from IDE
sections: https://openjfx.io/openjfx-docs/#install-java
Here is the error message I receive when trying to run the default Intellij Idea JavaFX project:
"C:\Program Files\Java\jdk-11.0.1\bin\java.exe" --module-path %PATH_TO_FX% --add-modules=javafx.controls,javafx.fxml --add-modules javafx.base,javafx.graphics --add-reads javafx.base=ALL-UNNAMED --add-reads javafx.graphics=ALL-UNNAMED "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2018.3\lib\idea_rt.jar=53491:C:\Program Files\JetBrains\IntelliJ IDEA 2018.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\jonat\IdeaProjects\Tawe-Lib FX\out\production\Tawe-Lib FX;C:\Program Files\Java\javafx-sdk-11.0.1\lib\src.zip;C:\Program Files\Java\javafx-sdk-11.0.1\lib\javafx-swt.jar;C:\Program Files\Java\javafx-sdk-11.0.1\lib\javafx.web.jar;C:\Program Files\Java\javafx-sdk-11.0.1\lib\javafx.base.jar;C:\Program Files\Java\javafx-sdk-11.0.1\lib\javafx.fxml.jar;C:\Program Files\Java\javafx-sdk-11.0.1\lib\javafx.media.jar;C:\Program Files\Java\javafx-sdk-11.0.1\lib\javafx.swing.jar;C:\Program Files\Java\javafx-sdk-11.0.1\lib\javafx.controls.jar;C:\Program Files\Java\javafx-sdk-11.0.1\lib\javafx.graphics.jar" sample.Main
Error occurred during initialization of boot layer
java.lang.module.FindException: Module javafx.base not found
Process finished with exit code 1
This makes little sense to me as I can see javafx.base
under lib
on the sidebar:
The path leading to jdk-11.0.1
and javafx-sdk-11.0.1
:
C:\Program Files\Java
Java is installed:
C:\Users\jonat>java --version
openjdk 11.0.1 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)
JAVA_HOME
variable (mentioned in guide) is set:
C:\Users\jonat>echo %JAVA_HOME%
C:\Program Files\Java\jdk-11.0.1
PATH_TO_FX
variable is set:
C:\Users\jonat>echo %PATH_TO_FX%
C:\Program Files\Java\javafx-sdk-11.0.1\lib
I have really no idea where to go from here. I have followed the tutorial precisely, and it does not work. Any help would be greatly appreciated and if you require more info please just drop a comment about it.
JavaFX is a software platform that is used for developing desktop applications that can run across a wide variety of devices. JavaFX support in IntelliJ IDEA includes code completion, search, navigation and refactoring in JavaFX-specific source files (including . fxml and JavaFX .
Click on the File menu and select Project Structure . In the dialog that appears, select the Libraries tab and click the + icon to add a new Java library: Find your javafx-sdk folder and select the lib subfolder: Click the OK button to complete the process.
IntelliJ is a popular IDE that is used by many committers to develop JavaFX code. An IntelliJ project has been created for you that you need to open.
Based on the posted command line, this is what IntelliJ applies to run your project:
"C:\Program Files\Java\jdk-11.0.1\bin\java.exe" --module-path %PATH_TO_FX% --add-modules=javafx.controls,javafx.fxml
So in the VM options you have set verbatim what the tutorial says:
But you haven't applied your real path for PATH_TO_FX
, as it is suggested in the picture inserted after that command in the tutorial:
IntelliJ doesn't resolve that variable and the module path is not set, hence you get the expected error that reveals that the JavaFX modules are not found:
Error occurred during initialization of boot layer
java.lang.module.FindException: Module javafx.controls not found
Solution
This can be solved in two ways:
Edit run configurations, and in the VM options add your path:
--module-path "C:\Program Files\Java\javafx-sdk-11.0.1\lib" --add-modules=javafx.controls,javafx.fxml
Apply, and run. It should work.
You can also set an environment variable. Go to IntelliJ->File->Settings->Appearance & Behavior->Path Variables
, and add PATH_TO_FX
, with the path to the lib
folder:
And then you can use the literals $PATH_TO_FX$
(Does not work for IntelliJ IDEA 2021.1 (Community Edition) on Windows) or ${PATH_TO_FX}
in the VM options:
--module-path ${PATH_TO_FX} --add-modules=javafx.controls,javafx.fxml
Apply, and run.
Note that this is a more permanent solution that can be apply to any other JavaFX project.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With