missing - javafx 11 tutorial



IntelliJ ne reconnaît pas JavaFX 11 avec OpenJDK 11 (2)

Je ne parviens pas à faire reconnaître à IntellJ les packages JavaFX. Avec un nouveau projet JavaFX, avec OpenJDK 11, IntelliJ ne peut pas reconnaître les packages JavaFX lors de la tentative de construction du projet.

J'ai importé openjfx:javafx-base-11 depuis le openjfx:javafx-base-11 Maven.

J'ai examiné d'autres questions et les solutions semblent aller de vérifier que le code secondaire est au bon niveau (le mien est) et que la langue du projet est correcte (le mien l'est).

Quelqu'un a des idées?

Modifier:

Erreur:

https://src-bin.com


Answer #1

Aucune de ces solutions n'a fonctionné pour moi. J'ai passé trop de temps à effacer les autres erreurs qui se sont produites. J'ai trouvé que c'était le moyen le plus facile et le meilleur.

Cela fonctionne aussi pour obtenir JavaFx sur Jdk 11, 12 et sur OpenJdk12!

  • La vidéo vous montre le téléchargement de JavaFx Sdk
  • Comment le définir comme une bibliothèque globale
  • Définir le module-info.java (je préfère celui du bas)
module thisIsTheNameOfYourProject {
    requires javafx.fxml;
    requires javafx.controls;
    requires javafx.graphics;
    opens sample;
}

La chose entière m'a pris seulement 5 minutes !!!


Answer #2

Comme mentionné dans les commentaires, le Guide de démarrage est l’endroit idéal pour commencer avec Java 11 et JavaFX 11.

Pour travailler comme avant Java 11, il est essentiel de comprendre que:

  • JavaFX 11 ne fait plus partie du JDK
  • Vous pouvez l’obtenir de différentes manières, sous forme de SDK ou de dépendances régulières (maven / gradle).
  • Vous devrez l'inclure dans le chemin de module de votre projet, même si votre projet n'est pas modulaire.

Projet JavaFX

Si vous créez un projet JavaFX par défaut dans IntelliJ (sans Maven ni Gradle), je vous suggère de télécharger le SDK à partir d' here . Notez qu'il existe également jmods, mais pour un projet non modulaire, le SDK est préférable.

Voici les étapes faciles à exécuter pour exécuter le projet par défaut:

  1. Créer un projet JavaFX
  2. Définissez JDK 11 (pointez sur votre version locale de Java 11)
  3. Ajoutez le SDK JavaFX 11 en tant que bibliothèque. L'URL pourrait être quelque chose comme /Users/<user>/Downloads/javafx-sdk-11/lib/ . Cela fait, vous remarquerez que les classes JavaFX sont maintenant reconnues dans l'éditeur.

  1. Avant d'exécuter le projet par défaut, il vous suffit d'ajouter ces options aux options de la machine virtuelle:

    --module-path /Users/<user>/Downloads/javafx-sdk-11/lib --add-modules=javafx.controls,javafx.fxml

  2. Courir

Maven

Si vous utilisez Maven pour générer votre projet, procédez comme suit:

  1. Créer un projet Maven avec l'archétype JavaFX
  2. Définissez JDK 11 (pointez sur votre version locale de Java 11)
  3. Ajoutez les dépendances JavaFX 11.

    <dependencies>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>11</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>11</version>
        </dependency>
    </dependencies>

Cela fait, vous remarquerez que les classes JavaFX sont maintenant reconnues dans l'éditeur.

Vous remarquerez que Maven gère pour vous les dépendances requises: il ajoutera javafx.base et javafx.graphics pour javafx.controls, mais surtout, il ajoutera le classificateur requis en fonction de votre plate-forme. Dans mon cas, Mac.

C'est pourquoi vos org.openjfx:javafx-controls:11 jars org.openjfx:javafx-controls:11 sont vides , car il existe trois classificateurs possibles (plates-formes Windows, Linux et Mac), contenant toutes les classes et l'implémentation native.

Si vous souhaitez toujours accéder à votre référentiel .m2 et y récupérer manuellement les dépendances, assurez-vous de choisir celle qui .m2/repository/org/openjfx/javafx-controls/11/javafx-controls-11-mac.jar (par exemple, .m2/repository/org/openjfx/javafx-controls/11/javafx-controls-11-mac.jar )

  1. Remplacez les plugins Maven par défaut par ceux d’ here .

  2. Exécutez mvn compile exec:java , et cela devrait fonctionner.

Des travaux similaires sont également proposés pour les projets Gradle, comme expliqué en détail here .

MODIFIER

Le guide de démarrage mentionné contient la documentation mise à jour et des exemples de projets pour IntelliJ:





javafx-11