1 - Compiler les sources

On suppose que :

  • le jdk javafx est déjà installé dans /usr/share/openjfx-17,
  • on se trouve à la racine d'un projet où les sources se trouvent dans src,
  • le résultat de la compilation va dans le répertoire out.
javac --module-path /usr/share/openjfx-17/lib \
  --add-modules=javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web \
  -d out \
  $(find src -name "*.java")

 

2 - Créer un JAR simple

# Créer le MANIFEST
mkdir -p out/META-INF
cat > out/META-INF/MANIFEST.MF << EOF
Manifest-Version: 1.0
Main-Class: com.example.MainApp
EOF

# Assembler le JAR
jar cfm monapp.jar out/META-INF/MANIFEST.MF -C out .

 

3 - Construire l'exécutable

On suppose que l'on veut produire une AppImage pour linux.

jpackage \
  --input       . \
  --main-jar    monapp.jar \
  --main-class  com.example.MainApp \
  --module-path /usr/share/openjfx-17/lib \
  --add-modules=javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web \
  --name        MonApp \
  --app-version 1.0 \
  --type        app-image