web-dev-qa-db-fra.com

Comment utiliser JavaFX 11 dans Eclipse?

J'ai des problèmes avec JavaFX. Je voulais commencer à créer des applications, de bureau ou mobiles, au moins quelque chose. J'ai donc découvert que je pouvais utiliser la bibliothèque JavaFX pour cela. Mais pour autant que je sache, il a été exclu de JDK 9. J'utilise actuellement OpenJDK 11 sur Ubuntu 18 (bien qu'Eclipse écrit que j'ai l'environnement JavaSE 10, c'est là que je suis aussi un peu confus) et j'ai installé OpenJFX. en utilisant Sudo apt install openjfx et je ne peux pas faire fonctionner Eclipse avec JavaFX.

Je ne sais pas s'il est logique de ne pas utiliser JDK 8 avec le JavaFX fourni, mais comment puis-je utiliser JavaFX dans de telles conditions dans Eclipse?

10
Alex Chashin

Il y a plusieurs points dans votre message qui nécessitent une clarification. Je vais essayer d'y répondre dans différents points:

Mais si j'ai bien compris, il (JavaFX) a été exclu de JDK 9.

JavaFX sera découplé du JDK Oracle à partir du JDK 11. J'insiste sur le JDK Oracle car JavaFX n'a ​​jamais fait partie d'OpenJDK. Pas même dans OpenJDK 8.

J'utilise actuellement OpenJDK 11 sur Ubuntu 18 (bien qu'Eclipse écrive que j'ai l'environnement JavaSE 10, c'est là que je suis aussi un peu confus)

Pour le support de Java 11 dans Eclipse, vous devez installer le plugin plug-in de Java 11 pour Eclipse Photon .

Voici quelques exemples Exemples d'utilisation de Java 11 dans Eclipse

J'ai installé openjfx en utilisant Sudo apt install openjfx et je ne peux pas faire fonctionner Eclipse avec JavaFX.

Je ne sais pas s'il est logique de ne pas utiliser JDK 8 avec JavaFX inclus, mais de toute façon, comment utiliser JavaFX dans de telles conditions avec Eclipse?

Etant donné qu'OpenJDK 11 ou Oracle JDK 11 ne sera pas fourni avec JavaFX, le mieux est de télécharger le SDK JavaFX à partir de ici ou ici et de les charger dans votre IDE.

Si vous avez l'habitude de créer des outils, vous pouvez directement utiliser les fichiers JAR d'exécution JavaFX disponibles dans Maven Central .

Pour un tutoriel sur l'exécution de JavaFX 11 sur OpenJDK 11, vous pouvez suivre:

JavaFX 11 et Eclipse

Au moment de la rédaction de cet article, vous avez besoin de Eclipse 4.9M pour utiliser JavaFX 11.

Une fois que vous avez Eclipse, JDK 11 et JavaFX 11 SDK, vous pouvez choisir de créer:

  • Projet basé sur un module
  • Projet non basé sur un module (n ° module-info.Java Champs obligatoires)

Projet basé sur un module

Créez un projet Java et ajoutez des fichiers jar JavaFX à partir du Java FX 11 SDK au chemin de module du projet.

enter image description here

Créer un module.info et déclarer sa dépendance de javafx.controls module. javafx11 est le nom du paquet contenant votre fichier Java.

module javafx11 {
    requires javafx.controls;
    exports javafx11;
}

Lancer le programme\o /

Projet non basé sur un module

Créez un projet Java et ajoutez des fichiers jar JavaFX à partir du Java SDK FX 11) à soit le chemin du module ou le chemin de classe de le projet.

Ajoutez les arguments JVM suivants à la configuration d'exécution du projet:

--module-path=path-to-javafx-skd/lib --add-modules=javafx.controls

Lancer le programme\o /

16
ItachiUchiha

tl; dr

Pour vous familiariser plus facilement avec JavaFX, utilisez la version de Java 8 de marque Oracle, où JavaFX 8 est fourni et facilement disponible.

Pour plus de détails techniques, voir Utilisation de JavaFX dans JRE 8 . Recherchez les sections liées et associées de la page Web pour connaître les nombreuses publications associées.

Modularisation Java

La plate-forme Java est en train de procéder à une reformulation radicale, connue sous le nom de modularisation .

Auparavant, Java SE (édition standard) était un grand monolithe de logiciels, qui ne cessait de prendre de l'ampleur et que de plus en plus d'ajoutés. Aucune application ne l'utilise jamais.

Une décision a été prise de diviser Java SE en plusieurs fragments distincts, qui seront définis de manière formelle en tant que "modules". L'un des principaux avantages est qu'une application peut être associée à un environnement d'exécution Java SE composé uniquement des modules réellement nécessaires, sans les modules inutilisés. Voir l'outil jlink .

En tant que sous-produit de cette modularisation, certaines parties plus anciennes et moins populaires telles que [~ # ~] corba [~ # ~] sont en cours de suppression, pour ne plus être portées en tant que partie standard de Java (bien qu’elle soit proposée aux autres parties si elles en décident ainsi). De même, certains Java EE modules seront supprimés de Java SE et transférés au projet Jakarta EE , logiquement une maison plus appropriée. Voir JEP 320: Supprimez les modules Java EE et CORBA .

Le processus de modularisation et de réorganisation est un effort continu qui dure depuis des années. Beaucoup a été fait dans Java 9 et Java 10. Certaines étapes finales sont en cours d'exécution dans Java 11.

L'une des mesures prises dans Java 11 consiste à cesser de regrouper JavaFX avec Java SE. Voir:

Il est donc plus facile de démarrer avec le développement JavaFX dès maintenant avec Java 8. Les bibliothèques JavaFX sont regroupées avec Java 8. Et vous n'avez pas besoin d'apprendre davantage sur la modularisation, ni de maîtriser votre IDE (comme Eclipse) et les paramètres du projet pour reconnaître les modules. Si vous n'avez pas un besoin urgent d'utiliser les toutes dernières versions de Java ou JavaFX, restez avec 8 jusqu'à ce que le processus de modularisation et les outils soient lissés, probablement l'année prochaine, en 2019.

Si vous insistez pour utiliser Java 11, vous devez en savoir plus sur:

  • La modularisation Java en général, y compris le fichier module-info.Java .
  • Mise à jour de votre IDE (Eclipse, etc.) et d'autres outils vers des versions ultérieures prenant en charge la modularisation et Java 11.
  • Configuration de modules dans vos outils de construction, tels que Maven ou Gradle
  • Configuration de modules dans votre IDE, tels que Eclipse
  • Téléchargement de modules JavaFX ou utilisation d'un gestionnaire de dépendances tel que Maven

Ces points sont trop nombreux pour être abordés ici et ont été abordés dans de nombreuses autres Questions sur le dépassement de capacité. En outre, Java 11 n'a pas encore été officiellement publié.

Peut-être que cet article vous aidera, Comment créer un projet avec JavaFX sur JDK 11 .

Pour en savoir plus sur la modularisation de Java, lisez le blog et le livre, Le système de modules Java , par Nicolai Parlog.

6
Basil Bourque

J'ai eu du mal à résoudre ce problème sur environ 20 ordinateurs, alors j'ai dressé la liste de contrôle suivante:

[ ] download javafx11 from javafx11's website, put on desktop
[ ] create a MODULE based project
[ ] right click project, go to BUILD PATH
[ ] add the downloaded javafx.base/control/graphics as external jar files
[ ] put the files in a package (eg: my_big_package)
[ ] put the following in the module.Java file:
module javafx11 {
    requires javafx.controls;
    exports my_big_package;
}
[ ] eat a donut from the break room

Si vous n'êtes pas marié à Eclipse et/ou que vous ne faites qu'essayer d'apprendre (ou êtes étudiant avec un professeur/assistant peu utile), BlueJ intègre déjà JavaFX et est prêt à fonctionner. Aucune installation ni aucun téléchargement supplémentaire n'est nécessaire. Soigné!

0
Joseph Schmidt