Developpez.com

Le Club des Développeurs et IT Pro

JavaFX 11 est enfin disponible en tant que module open source distinct du JDK

Tour d'horizon des améliorations et des nouveautés

Le 2018-09-24 15:36:26, par Christian Olivier, Expert éminent sénior
Lors de l’annonce des fonctionnalités du Java Development Kit (JDK) (JDK) 11, Oracle a indiqué qu’il procèderait, à partir de cette version, au retrait des modules non essentiels du JDK et à la mise en place de modules indépendants bénéficiant d’un meilleur suivi.

Cette mesure devait permettre aux modules cibles d’être fournis indépendamment du JDK afin qu’ils puissent être développés à leur rythme, sans être impactés par la nécessité de devoir sortir une nouvelle version tous les 6 mois parallèlement à la sortie d’un nouveau JDK.

Les runtimes de JavaFX ont longtemps été distribuées sous forme de bibliothèque tierce séparée du JDK jusqu’à son inclusion dans le JDK 7 lors de la publication de JavaFX 2.2. Oracle avait annoncé que JavaFX, son framework Java qui repose sur l’API Java SE (Standard Edition) et permet de concevoir des interfaces graphiques (UI) ou des RIA (Rich Internet Application), sera à l’avenir disponible en tant que module open source distinct du JDK (le kit de développement Java).


JavaFX 11 est enfin disponible et se positionne, par la même occasion, comme la première version autonome de JavaFX depuis la publication de JavaFX 2.2 et l’intégration de ce dernier dans le JDK 7. Il prend en charge MathML et inclus la fonctionnalité FX Robot API pour simuler les interactions de l’utilisateur.

Sur cette version, les modules JavaFX autonomes n’ont plus la permission par défaut et le support est offert pour FX Swing interop en utilisant une API publique. MarlinFX, le portage du moteur de rendu Marlin qui calcule la proportion des pixels couverts par les formes Shape en estimant le nombre de sous-pixels couverts, a été mis à niveau vers la version 0.9 avec la promesse de performances revues à la hausse.

On peut également signaler la mise à jour de GTX (Gimp Toolkit) par défaut vers la version 3, l’ajout de couleurs standard à la palette de couleurs ColorPicker et l’amélioration de la classe Bounds. Cette version corrige en outre certains bogues, notamment une fuite de mémoire dans VirtualFlow lorsque le lecteur d’écran était activé et un problème qui était en rapport avec la table de redimensionnement automatique.

JavaFX 11 plante avec OpenJDK 11 sur les PC Linux tournant sous Ubuntu 18.04 avec Wayland activé. L’utilisation du serveur Xorg est recommandée pour contourner ce problème. Le JDK n’incluant plus JavaFX, les développeurs doivent explicitement inclure les modules JavaFX dans les applications.

Source : JAVA

Et vous ?

Qu’en pensez-vous ?

Voir aussi

Interview de Laurent Bourgès, contributeur sur l'OpenJDK 9 la prochaine version de Java
Quel environnement de développement intégré Java utilisez-vous en 2018 ? Et pourquoi ?
FAQ JavaFX
JavaFX sera disponible en tant que module open source distinct du JDK et Java Web Start disparaitra à partir de Java 11
  Discussion forum
16 commentaires
  • lbobinet
    Candidat au Club
    Si je me rappelle bien du feuilleton:

    Java reste gratuit, mais les versions obsolètes sont en support payant
    Java EE a été lâché par Oracle et cédé à la fondation Eclipse
    Java FX a été créé indépendamment du JDK (kit standard de dev), puis y a été intégré, et maintenant s'en retrouve séparé à nouveau
  • ScientificWare
    Nouveau membre du Club
    Merci Christian d'avoir évoqué MathML dans les fonctionnalités de JavaFX/OpenJFX!

    Effectivement les personnes qui savent que JavaFX supporte nativement MathML sont peu nombreuses.
    Cette possibilité n'a jamais été documentée ? ? ?
    Alors voici une copie d'écran pour donner un exemple, ce sera plus parlant.



    Travaillant sur le support de l'écriture et de l'édition mathématique depuis 2007 dans Java/Swing, cette fonctionnalité m'intéressait au plus haut point !

    Mais ce n'est qu'en 2015 et un peu par hasard au détour d'une réponse à un post, que j'ai découvert que JavaFX supportait aussi MathML.
    Malheureusement, après un rapide essai, il s'est avéré que cette fonctionnalité était cassée depuis 2011.

    Pendant 2 ans, j'ai attendu en guettant d'éventuels progrès.
    Puis en 2017 et 2018, je me suis lancé avec mon anglais approximatif.
    D'abord sur la liste de l'OpenJDK/JFX puis sur le nouveau dépôt GitHub de JavaFX/OpenJFX.
    La première réponse a été : Il existe bien un rapport de bug JDK-8147476 mais sa correction n'est pas programmée, alors si vous être pressé vous pouvez le faire vous-même.

    Whaou, quel défi !
    Quelques semaines de travail détaillées là JavaFX and MathML.
    Pour aboutir finalement comme "un grand" à un correctif JDK-8147476 : Rendering issues with MathML token elements. #117 juste pour la sortie de JavaFX11.

    J'avais hésité un moment avant d'oser me lancer, un de mes correctifs concernant le JDK avait mis 5 ans avant d'être accepté.
    Cette fois-ci avec la nouvelle politique pour JavaFX et une petite mais précieuse aide de l'équipe de développement tout cela a été fait en 3 mois, test compris.

    Depuis je parcours les forums pour le dire et surtout le montrer car la pérennité de ce support dépend du nombre des utilisateurs. Il ne manquait plus que mon site préféré, voilà c'est chose faite.

    Je dois aussi remercier Frédéric Wang de la Société Igalia pour avoir répondu à mes questions sur son travail sur MathML.
    J'espère qu'il parviendra à nous offrir également le support de MathML au sein de Chromium après avoir œuvré au cœur de WebKit.

    Pour les plus septiques, j'ai mis un petit bout de code ici : Keep an answer which could be deleted in StackOverFlow.
    Pour l'essayer, le plus simple est d'utiliser la version de Java 8 192 ea ou celle qui doit être publiée à partir du 25 septembre (c'est la dernière version du JDK qui contiendra JavaFX ).
    Attention, ce bug ne devrait pas être corrigé dans les versions 9 et 10, sauf souscription à un support personnalisé auprès d'Oracle.
    Avec JavaFX 11 c'est un peu plus compliqué.

    On obtient ceci :


    Justement, l'avenir de JavaFX et du SDK Java est très bien expliqué ici Java release chains - Splitting features from security

    Alors n'hésitez pas à mettre les mains dans le cambouis !
  • Mickael_Istria
    Membre émérite
    Envoyé par gstratege
    Un coup Java va devenir payant par Oracle.
    Pour etre plus precis: L'implementation OracleJDK du language Java va devenir payant.
    Java, le language, la specification, reste gratuit.
    Il y a d'autres implems qui restent gratuites telle qu' AdoptOpenJDK, et il y a eu des implem payantes de Java avant ca. Au final, ca ne change rien au fondamentaux, c'est juste l'offre d'Oracle qui evolue, mais le language reste gere comme il l'etait avant.

    Un coup Java va être transféré à Eclipse
    Non, il n'a (pour l'instant) jamais ete question que Java soit transfere a la communaute/fondation Eclipse.
    C'est Java EE qui a ete transfere. C''est pas pareil Java (le language) et Java EE (les APIs "enterprise".

    JavaFX de cet article sera-t il payant ?
    Le code de JavaFX sera open-source et gratuit.
    Apres, Oracle a tout a fait le droit de prendre ce code, et de le mettre dans leur offre payante; AdoptOpenJDK a tout a fait le droit de prendre ce code, et de le mettre dans leur offre gratuite... Toi, tu as le droit de prendre ce code, et de te faire ton application avec si tu preferes ca a ce que proposent les fournisseur de JVM.
  • gstratege
    Membre actif
    Moi je ne comprend plus rien dans Java.
    Un coup Java va devenir payant par Oracle.
    Un coup Java va être transféré à Eclipse : dans ce cas comment il va être payant ?
    JavaFX de cet article sera-t il payant ?

    N'hésitez pas à répondre si vous comprenez mieux ce qui se passe dans la monde Java.
  • darklinux
    Membre extrêmement actif
    Bon , pas de quoi fouetté un geek . Non il n ' y a que le support de la JVM d ' Oracle qui est payante , mais elle n 'est pas la référence . C est l ' Open JDK .