J'essaie de décider si je pourrais passer à JavaFX pour l'interface utilisateur de mon application Java. La plupart de mes utilisateurs utiliseraient Oracle JRE, qui intègre JavaFX ces jours-ci. Cependant, certains utilisent OpenJDK (sous Linux). Cette (ancienne) question suggère qu'OpenJDK traite très mal JavaFX. Selon cette question, l'alternative OpenJFX ne sera pleinement intégrée à OpenJDK qu'en version 9. Ma question est donc double:
109
Réponses:
JavaFX fait partie d'OpenJDK
Le projet JavaFX lui-même est open source et fait partie du projet OpenJDK .
Mise à jour déc.2019
Pour obtenir des informations actuelles sur l'utilisation d'Open Source JavaFX, visitez https://openjfx.io . Cela inclut des instructions sur l'utilisation de JavaFX en tant que bibliothèque modulaire accessible à partir d'un JDK existant (comme une installation Open JDK ).
Le référentiel de code open source pour JavaFX se trouve à l' adresse https://github.com/openjdk/jfx .
À l'emplacement source lié, vous pouvez trouver des fichiers de licence pour JavaFX ouvert (actuellement, cette licence correspond à la licence pour OpenJDK: exception de chemin de classe GPL +).
Le wiki du projet se trouve à l' adresse : https://wiki.openjdk.java.net/display/OpenJFX/Main
Si vous souhaitez un démarrage rapide de l'utilisation de JavaFX ouvert, les distributions Belsoft Liberica JDK fournissent des binaires pré-construits d'OpenJDK qui (actuellement) incluent JavaFX ouvert pour une variété de plates-formes.
Pour la distribution en tant qu'applications autonomes, Java 14 devrait implémenter JEP 343: Packaging Tool , qui «prend en charge les formats de packaging natifs pour offrir aux utilisateurs finaux une expérience d'installation naturelle. Ces formats incluent msi et exe sous Windows, pkg et dmg sous macOS , et deb et rpm sur Linux. ", pour le déploiement d'applications basées sur OpenJFX avec des programmes d'installation natifs et sans dépendances de plate-forme supplémentaires (comme un JDK préinstallé).
Informations plus anciennes qui peuvent devenir obsolètes avec le temps
Construction de JavaFX à partir du référentiel OpenJDK
Vous pouvez créer une version ouverte d'OpenJDK (y compris JavaFX) entièrement à partir de la source qui n'a aucune dépendance sur le JDK Oracle ou le code source fermé.
Mise à jour: utilisation d'une distribution JavaFX pré-construite à partir de sources OpenJDK
Comme indiqué dans les commentaires de cette question et dans une autre réponse, les distributions Debian Linux offrent une distribution binaire JavaFX basée sur OpenJDK:
Installer via:
(actuellement cela ne fonctionne que pour Java 8 pour autant que je sache).
Différences entre Open JDK et Oracle JDK par rapport à JavaFX
Les informations suivantes ont été fournies pour Java 8. À partir de Java 9, le codage VP6 est déconseillé pour JavaFX et la technologie de déploiement d'applications intégrées Oracle WebStart / Browser est également déconseillée . Ainsi, les futures versions de JavaFX, même si elles sont distribuées par Oracle, n'incluront probablement aucune technologie qui ne soit pas open source.
Oracle JDK comprend certains logiciels qui ne sont pas utilisables à partir d'OpenJDK. Il existe deux composants principaux liés à JavaFX.
Cela signifie qu'une version ouverte de JavaFX ne peut pas lire les fichiers VP6 FLV. Ce n'est pas une grosse perte car il est difficile de trouver des encodeurs VP6 ou des supports encodés en VP6.
D'autres formats vidéo plus courants, tels que H.264, pourront être lus correctement avec une version ouverte de JavaFX (tant que vous avez les codecs appropriés préinstallés sur la machine cible).
L'absence de technologie de déploiement WebStart / Browser Embedded est vraiment quelque chose à voir avec OpenJDK lui-même plutôt qu'avec JavaFX en particulier. Cette technologie peut être utilisée pour déployer des applications non JavaFX.
Ce serait formidable si la communauté OpenSource développait une technologie de déploiement pour Java (et d'autres logiciels) qui remplaçait complètement les méthodes de déploiement WebStart et Browser Embedded, permettant une belle expérience utilisateur légère et à faible impact pour la distribution d'applications. Je crois que certains projets ont commencé à servir un tel objectif, mais ils n'ont pas encore atteint un niveau élevé de maturité et d'adoption.
Personnellement, je pense que les déploiements WebStart / Browser Embedded sont une technologie héritée et qu'il existe actuellement de meilleures façons de déployer de nombreuses applications JavaFX (telles que des applications autonomes).
Mise à jour de décembre 2019:
Une version open source de WebStart pour JDK 11+ a été développée et est disponible sur https://openwebstart.com .
Qui a besoin de créer des distributions Linux OpenJDK qui incluent JavaFX
Il appartient aux personnes qui créent des packages pour les distributions Linux basées sur OpenJDK (par exemple Redhat, Ubuntu, etc.) de créer des RPM pour le JDK et le JRE qui incluent JavaFX. Ces distributeurs de logiciels doivent ensuite placer les packages générés dans leurs référentiels de code de distribution standard (par exemple, les référentiels fedora / red hat network yum). Actuellement, cela n'est pas fait, mais je serais assez surpris si les packages Java 8 Linux n'incluaient pas JavaFX lors de la sortie de Java 8 en mars 2014.
Mise à jour, décembre 2019 :
Maintenant que JavaFX a été séparé de la plupart des distributions binaires JDK et JRE (y compris la distribution d'Oracle) et est, à la place, disponible en tant que SDK autonome, ensemble de jmods ou en tant que dépendances de bibliothèque disponibles à partir du référentiel central Maven (comme indiqué comme suit: https://openjfx.io ), il est moins nécessaire que les distributions Linux OpenJDK standard incluent JavaFX.
Si vous voulez un JDK pré-construit qui inclut JavaFX, pensez aux distributions Liberica JDK , qui sont fournies pour une variété de plates-formes.
Conseils sur le déploiement pour des applications importantes
Je vous conseille d'utiliser le mode de déploiement d' application autonome de Java .
Une description de ce mode de déploiement est:
Vous pouvez créer une application autonome à partir de la distribution Oracle JDK ou d'une version OpenJDK qui inclut JavaFX. Il est actuellement plus facile de le faire avec un JDK Oracle.
Comme une version de Java est fournie avec votre application, vous n'avez pas à vous soucier de la version de Java qui a pu être préinstallée sur la machine, de ses capacités et de sa compatibilité ou non avec votre programme. Au lieu de cela, vous pouvez tester votre application par rapport à une version d'exécution Java exacte et la distribuer avec votre application. L'expérience utilisateur pour déployer votre application sera la même que pour installer une application native sur leur machine (par exemple un windows .exe ou .msi installé, un OS X .dmg, un linux .rpm ou .deb).
Remarque: la fonction d'application autonome n'était disponible que pour Java 8 et 9, et non pour Java 10-13. Java 14, via JEP 343: Packaging Tool , devrait à nouveau fournir la prise en charge de cette fonctionnalité à partir des distributions OpenJDK.
Mise à jour, avril 2018: Informations sur la politique actuelle d'Oracle envers les développements futurs
la source
Pour moi, cela a fonctionné.
la source
webupd8 PPA
Ubuntu et le programmefedy
d'installation de bureau pour Fedora, il existe deux moyens rapides de configurer le dernier Oracle JDK / JRE qui inclut JavaFX.apt-get install openjfx
(qui ne fonctionne actuellement que pour Java 8), vous pouvez utiliser les instructions du site Web openjfx.io , où JavaFX est "disponible en tant que SDK spécifique à la plate-forme, sous forme de numéro de jmods, et comme un ensemble d'artefacts dans maven central. ".sudo apt-get install openjfx
, continuera à être pris en charge et fonctionnera pour les versions ultérieures de JavaFX et ubuntu. Notez que les paquets Debian openjfx ne semblent pas être mis à jour aussi fréquemment que les bibliothèques distribuées par openjfx.io, donc si vous souhaitez utiliser la version la plus récente, vous feriez probablement mieux d'utiliser une distribution openjfx.io.Comme solution rapide, vous pouvez copier le fichier JAR d'exécution JavaFX et ceux référencés à partir d' Oracle JRE (JDK) ou de toute application autonome utilisant JavaFX (par exemple JavaFX Scene Builder 2.0 ):
assurez- vous simplement d' avoir le gtk 2.18 ou supérieur
la source
Répondant également à cette question:
Où puis-je obtenir des bibliothèques JavaFX prédéfinies pour OpenJDK (Windows)
Sous Linux, ce n'est pas vraiment un problème, mais sous Windows, ce n'est pas si simple, surtout si vous voulez distribuer le JRE.
Vous pouvez en fait utiliser OpenJFX avec OpenJDK 8 sous Windows, il vous suffit de l'assembler vous-même:
Téléchargez l'OpenJDK à partir d'ici: https://github.com/AdoptOpenJDK/openjdk8-releases/releases/tag/jdk8u172-b11
Téléchargez OpenJFX à partir d'ici: https://github.com/SkyLandTW/OpenJFX-binary-windows/releases/tag/v8u172-b11
copiez tous les fichiers du zip OpenFX sur le dessus du JDK, voila, vous avez un OpenJDK avec JavaFX.
Mise à jour :
Heureusement d'Azul, il existe maintenant une version OpenJDK + OpenJFX qui peut être téléchargée sur leur page de communauté: https://www.azul.com/downloads/zulu-community/?&version=java-8-lts&os=windows&package=jdk-fx
la source
Essayez obuildfactory .
Il est nécessaire de modifier ces scripts (contient une erreur et ne fait pas exactement la "chose" requise), je téléchargerai les scripts de mine provenant d'obuildfactory dans les prochains jours. et donc je mettrai également à jour ma réponse en conséquence.
Jusque-là, profitez-en, monsieur :)
la source
Selon Oracle, l'intégration d'OpenJDK et de javaFX aura lieu au T1-2014 (voir la feuille de route: http://www.oracle.com/technetwork/java/javafx/overview/roadmap-1446331.html ). Donc, pour la première question, la réponse est qu'il faut attendre jusque-là. Pour la 2ème question, il n'y a pas d'autre moyen. Alors, pour l'instant, allez avec java swing ou démarrez javaFX et attendez
la source