Before Java 11, JavaFX was a part of the standard Java SE. So, no problem existed with the JavaFX dependencies, and FlexDoc/XML+DiagramKit could be run immediately with any new Java version.
But since Java 11, Oracle has moved JavaFX into a separate project found on openjfx.io. Now, those who need JavaFX should download JavaFX SDK separately from there, install it and specify all JavaFX dependencies in their Java application according to that installation. That, of course, may be a bit complicated for ordinary users and breaks down the whole idea of using some generic JRE preinstalled on user's computer (independently on FlexDoc/XML).
However, as a compensation for all that trouble (and actually as its goal), since Java 11, anyone can build their own custom JRE (called «runtime image») that may include in itself any other 3rd party modules necessary to run a given Java application on a particular computer platform. That's what we did.
openjdk-20.0.1_linux-x64_bin.tar.gz
– from https://jdk.java.net/20/
openjfx-20.0.1_linux-x64_bin-jmods.zip
– from https://gluonhq.com/products/javafx/
flexdoc-jre.sh
#!/bin/bash # Change current directory to the parent of this script file cd $(dirname $0) tar -xf openjdk-20.0.1_linux-x64_bin.tar.gz unzip openjfx-20.0.1_linux-x64_bin-jmods.zip export JAVA_HOME="jdk-20.0.1" export PATH_TO_FX_MODS="javafx-jmods-20.0.1" $JAVA_HOME/bin/jlink --module-path $PATH_TO_FX_MODS \ --add-modules java.base,java.desktop,java.xml,javafx.base,javafx.graphics,javafx.swing \ --bind-services --output jre tar -zcvf flexdoc-jre-20_linux.tar.gz jre
FlexDoc JRE (OpenJDK+JavaFX) to run FlexDoc/XML+DiagramKit | Linux/64 (tar.gz)
flexdoc-jre-20_linux.tar.gz
{flexdoc-xml}
– your FlexDoc/XML installation directory. You will have a folder:
{flexdoc-xml}/jre
{flexdoc-xml}/DiagramKit/linux/generator.sh
– Template Processor (Generator) with DiagramKit activated as the diagramming engine.
{flexdoc-xml}/DiagramKit/linux/designer.sh
– Template Designer with DiagramKit.
Set a permission to allow executing generator.sh
/ designer.sh
as a program.