Consolidez les applications JavaFX dans des fichiers jar qui fonctionnent à la fois sur Java 8/11

Conclusion

JavaFX (non inclus à partir de Java 11)

JavaFX est une bibliothèque d'interface graphique multiplateforme qui s'exécute sur JVM. Cependant, depuis Java 11, la bibliothèque n'est plus incluse, et à la place, elle a été transformée en une bibliothèque externe sous le nom OpenJFX.

Le problème ici est "Quelle version de Java supportez-vous?" Je souhaite prendre en charge Java 11, mais je ne peux pas facilement tronquer Java 8 (Les mises à jour Oracle gratuites pour les utilisateurs individuels continueront jusqu'à la fin de 2020 java / eol-135779-ja.html)).

Fat jar qui fonctionne à la fois sur Java8 / 11

La solution à ce problème est fat jar, qui inclut simplement toutes les bibliothèques OpenJFX 11 dans le fichier jar.

Les détails peuvent être trouvés dans Getting Started with JavaFX 11> Runtime images> Non-Modular project, mais avec Gradle (pour les paramètres de tâche Jar normaux) (De plus) Ajoutez les spécifications suivantes.

build.gradle


compileOnly "org.openjfx:javafx-graphics:$javafx.version:win"
compileOnly "org.openjfx:javafx-graphics:$javafx.version:linux"
compileOnly "org.openjfx:javafx-graphics:$javafx.version:mac"

Et si vous construisez avec JDK11, vous aurez un gros pot qui fonctionne à la fois avec Java8 / 11.

Recommended Posts

Consolidez les applications JavaFX dans des fichiers jar qui fonctionnent à la fois sur Java 8/11
Créer une image docker pour exécuter une application Java simple
Création d'un environnement Java léger qui s'exécute sur Docker
Déployer des applications Web Java sur Heroku
Comment déployer une application Java Servlet simple sur Heroku
[Débutant] Application Android qui fait rouler des balles à l'aide de capteurs [Java]
Comment déployer une application kotlin (java) sur AWS Fargate
J'ai créé un exemple d'application Selenium qui prend en charge plusieurs navigateurs (Chrome, IE, Firefox) qui s'exécute sur Java.
Comment déployer une application qui référence un pot local à heroku