jGRASP JavaFX Setup for Java 11 and Higher

As of Java 11, JavaFX is no longer included in the Java distribution. To use it, you will need to download JavaFX and modify jGRASP compiler flags. Simpler settings for JavaFX will be added in a future jGRASP release.

JavaFX is available here: https://openjfx.io. Download and extract the appropriate JavaFX SDK for your OS.

Make sure the version of JavaFX you are using matches or is compatible with the Java version you are using.

If you are running on a recent version of MacOS, use the latest versions of JavaFX and Java. Older versions may not work.


Settings for jGRASP 2.0.5_06 or Higher

Simple settings for JavaFX were added in jGRASP 2.0.5_06. If you are using this version or a newer one, go to Settings > Compiler Settings > Workspace (you can also do this at the project or file level if you will use different versions of JavaFX for different projects or files). Select language Java if not already selected. Select the JavaFX tab. Click off the default box for JavaFX Home and set the contents to the root directory of the extracted JavaFX installation.

Normally you will only use the javafx_controls module, but if other modules will be used they can be set in JavaFX Modules as a comma-separated list.


Settings for Older jGRASP Versions

In jGRASP, go to "Settings" > "Compiler Settings" > "Workspace" (or "Project ..." if you only want to use JavaFX for a single project). On the "Flags/Args" tab, add:

--module-path <place where JavaFX was extracted>lib --add-modules=javafx.controls

in the following places: "FLAGS or ARGS" for the "Compile" and "Document" rows. "FLAGS2 or ARGS2" for the "Run" and "Debug" rows.

For example, if you extracted JavaFX to C:\javafx-sdk-11.0.2 on Windows, your settings dialog would look like this:

Most likely you will only need javafx.controls, but if other modules will be used they need to be added to the end of the flags, like: --add-modules=javafx.controls,javafx.other_module .

Note that these settings won't interfere with non-JavaFX projects.