OpenJDK builds only include javafx.* modules if the configure step specifies to use javafx bits using the --with-import-modules option. Further, the OpenJDK 9 and 10 bundles do not include javafx.* modules.
The current FX build produces a bundle for inclusion in a JDK build. The subsequent build tasks for building apps, building tests, and running tests assume that the bootJDK already has javafx.* modules, and use scripts to patch these existing modules at compile time or runtime.
We can currently build the FX modules using a JDK without javafx.* modules (the "gradle sdk" step), but we cannot build or run apps or tests on such a JDK. We instead have to take those FX bits and build our own JDK including them.
This is a significant limitation, as it effectively requires FX developers to build their own OpenJDK + FX if they want to run an FX app with an OpenJDK build.
We need to enhance the build system to produce artifacts that can run on a boot JDK without javafx.* modules baked in.
NOTE: untill all of the internal dependencies are resolved (see JDK-8195798), we will need to specify the qualified exports on the command line. As a stop-gap we will generate the necessary @ args files with the needed "--add-exports" arguments.