JavaFX est une famille de produits de Sun Microsystems, produits qui ont pour but de créer des applications internet riches. Actuellement, JavaFX est constitué de JavaFX Script et de JavaFX Mobile, d'autres produits sont également prévus. JavaFX Script est un langage de script déclaratif basé sur la plateforme Java et permettant de faciliter le développement d'interface graphique, tandis que JavaFX Mobile est une plateforme mobile permettant l'exécution de code Java sur des téléphones portables, des PDA, et autres appareils mobiles.
Pour le moment sous licence, JavaFX Script devrait devenir OpenSource (GNU Public License v2). Sa syntaxe est relativement différente de celle de Java, mais elle permet une interaction forte avec les classes Java, et beaucoup de classes de JavaFX implémentent les fonctionnalités Swing et Java2D, facilitant leur utilisation. De plus, du code JavaFX peut embarquer du code Java ou HTML.
Un nouvel outil, JavaFX Designer, devrait voir le jour. Il permettrait de disposer d'un outil de conception visuel pour JavaFX, et donc orienté pour les graphistes.
Le code JavaFX Script s'exécute dans une JVM et nécessite l'installation du JRE 6. Le JRE est multi-plateforme : disponible sous Windows, Linux, MacOS X, Solaris, et compatible avec la plupart des navigateurs (IE, Firefox, Opera, Netscape, Safari). Selon une étude commandée par Adobe, Java serait installé sur plus de 84% des postes connectés à Internet.
Pour déployer une application JavaFX dans un navigateur, il existe deux solutions (cf le paragraphe « Principe de fonctionnement » de cette documentation), dont l'une d'entre elle nécessite de disposer du tout dernier JRE (encore en version beta) : le JRE 1.6.0.10 disponible sous Windows, Linux, et Solaris et du navigateur Firefox 3 (sous Linux et Windows XP/Vista), ou IE 7 (Windows XP/Vista).
Pour développer des applications en JavaFX, il faut avant tout posséder le J2SE JDK (Java SE Development Kit) version 5 ou supérieure qui contient les outils pour compiler, déboguer, et lancer des applications Java. Il faut ensuite le compilateur JavaFX : le OpenJFX Compiler (gratuit sous licence GPL), qui permet de compiler les applications JavaFX en bytecode, c'est-à-dire en classes Java. Ensuite, un simple éditeur de texte suffit pour écrire du code, mais il existe plusieurs outils visant à améliorer les développements en JavaFX :
JavaFX Script permet de définir une application en utilisant une syntaxe propre qui exploite des classes Java. Les fichiers .FX doivent ensuite être compilés en bytecode Java pour pouvoir être interprétés par une JVM. Les applications JavaFX ne sont donc pas principalement des applications Web au sens où elles ne s'exécutent pas dans un navigateur, et il n'y a, à l'heure actuelle, qu'un seul moyen de le faire : considérer l'application JavaFX en tant que applet. Finalement, mise à part une syntaxe plus simple et des composants graphique plus riche, développer en JavaFX Script pour le web revient à développer un applet en Java. Il existe alors trois méthodes de déploiement : ces deux premières méthodes fonctionnent avec un JRE 6 et les plugins Java officiels (1.6.0.6) :
Il existe une troisième méthode, encore en cours de développement, qui permettrait de ne plus à avoir à modifier son code JavaFX Script, ce qui lui permettrait d'être exécutable aussi bien dans un système d'exploitation que dans un navigateur web. Cette méthode nécessite l'installation du JRE 6 Update 10 (en version beta) qui permet l'installation du plugin Java 1.6.0.10, uniquement compatible Firefox 3 et IE7. Le principe est de créer une classe étendant FXApplet (elle-même étendant JApplet), qui contiendrait un élément (par exemple Canvas) dont le contenu serait le code JavaFX Script (qui peut alors lui-même contenir des objets de type Frame). Il suffirait alors de compiler les classes et de créer une archives JAR. Le déploiement se ferait par un fichier JNLP1 qui référencerait les archives JAR nécessaires (celle que l'on crée ainsi que JavaFXrt.jar et Scenario.jar). Les paramètres de ce fichier JNLP permettraient à la JVM d'exécuter le contenu en tant que applet dans un navigateur et non de télécharger l'application en tant qu'exécutable pour système d'exploitation.
A terme, Sun voudrait une totale interaction entre une application qui s'exécute dans un navigateur web, et une application qui s'exécute sur un système, en permettant par exemple à une application qui s'affiche dans un navigateur de devenir une application de bureau par simple glisser-déposer de celle-ci, et inversement.
1JNLP : fichier utilisé par le Java Web Start, est un fichier qui repose sur une syntaxe XML et qui permet le déploiement d'application Java via Internet sur un poste client de manière simplifiée avec mises à jour transparentes pour l'utilisateur.