Erreur javafx maven
Javaprogrammer43
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
j'ai créé un projet maven avec mon ide(intelijji idea),
et quand je lance le projet j'ai cette erreur:
Voilà mon fichier pom.xml:
Et voilà mon fichier fxml:
Et ma classe java:
Merci d'avance pour votre réponse,
Javaprogrammer43
j'ai créé un projet maven avec mon ide(intelijji idea),
et quand je lance le projet j'ai cette erreur:
Error: JavaFX runtime components are missing, and are required to run this application
Voilà mon fichier pom.xml:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.JonathanSoftware</groupId> <artifactId>presentation</artifactId> <version>1.0-SNAPSHOT</version> <name>presentation</name> <!-- FIXME change it to the project's website --> <url>https://github.com/Jonathan-Software</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-controls</artifactId> <version>15.0.1</version> </dependency> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-fxml</artifactId> <version>16-ea+6</version> </dependency> </dependencies> <build> <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> <plugins> <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle --> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin> <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging --> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> </plugin> <plugin> <artifactId>maven-jar-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin> <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle --> <plugin> <artifactId>maven-site-plugin</artifactId> <version>3.7.1</version> </plugin> <plugin> <artifactId>maven-project-info-reports-plugin</artifactId> <version>3.0.0</version> </plugin> <plugin> <groupId>org.openjfx</groupId> <artifactId>javafx-maven-plugin</artifactId> <version>0.0.5</version> <configuration> <mainClass>HelloFX</mainClass> </configuration> </plugin> </plugins> </pluginManagement> </build> </project>
Et voilà mon fichier fxml:
<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.Button?> <?import javafx.scene.control.Menu?> <?import javafx.scene.control.MenuBar?> <?import javafx.scene.control.MenuItem?> <?import javafx.scene.control.Separator?> <?import javafx.scene.control.SeparatorMenuItem?> <?import javafx.scene.control.ToolBar?> <?import javafx.scene.image.Image?> <?import javafx.scene.image.ImageView?> <?import javafx.scene.layout.AnchorPane?> <AnchorPane prefHeight="400.0" prefWidth="668.0" xmlns="http://javafx.com/javafx/15.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.JonathanSoftware.presentation.controller.MainController"> <children> <ImageView fitHeight="342.0" fitWidth="448.0" layoutX="194.0" layoutY="88.0" pickOnBounds="true" preserveRatio="true"> <image> <Image url="@../ressources/logo_cloudpostman.png" /> </image></ImageView> <MenuBar layoutY="2.0" prefHeight="25.0" prefWidth="852.0"> <menus> <Menu mnemonicParsing="false" text="File"> <items> <MenuItem mnemonicParsing="false" text="About Cloud Postman" /> <SeparatorMenuItem mnemonicParsing="false" /> <MenuItem mnemonicParsing="false" text="Settings" /> <MenuItem mnemonicParsing="false" text="Open messages box" /> <MenuItem mnemonicParsing="false" text="Write new message" /> <MenuItem mnemonicParsing="false" onAction="#exit" text="Exit" /> </items> </Menu> <Menu mnemonicParsing="false" text="Edit"> <items> <MenuItem mnemonicParsing="false" text="Copy" /> <MenuItem mnemonicParsing="false" text="Paste" /> <MenuItem mnemonicParsing="false" text="Delete" /> <MenuItem mnemonicParsing="false" text="Refresh" /> </items> </Menu> <Menu mnemonicParsing="false" text="Help"> <items> <MenuItem mnemonicParsing="false" text="Cloud Postman wiki" /> <MenuItem mnemonicParsing="false" text="Check for update" /> </items> </Menu> </menus> </MenuBar> <ToolBar layoutY="445.0" prefHeight="51.0" prefWidth="852.0"> <items> <Button mnemonicParsing="false" prefHeight="6.0" prefWidth="50.0"> <graphic> <ImageView fitHeight="30.0" fitWidth="37.0" pickOnBounds="true" preserveRatio="true"> <image> <Image url="@../ressources/new_message_icon.png" /> </image> </ImageView> </graphic> </Button> <Button mnemonicParsing="false" prefHeight="38.0" prefWidth="39.0"> <graphic> <ImageView fitHeight="30.0" fitWidth="42.0" pickOnBounds="true" preserveRatio="true"> <image> <Image url="@../ressources/message_box_icon.png" /> </image> </ImageView> </graphic> </Button> <Separator orientation="VERTICAL" prefHeight="0.0" prefWidth="9.0" /> <Button mnemonicParsing="false" prefHeight="38.0" prefWidth="47.0"> <graphic> <ImageView fitHeight="78.0" fitWidth="25.0" pickOnBounds="true" preserveRatio="true"> <image> <Image url="@../ressources/Help_icon.png" /> </image> </ImageView> </graphic> </Button> <Button mnemonicParsing="false" prefHeight="38.0" prefWidth="54.0"> <graphic> <ImageView fitHeight="30.0" fitWidth="43.0" pickOnBounds="true" preserveRatio="true"> <image> <Image url="@../ressources/settings_icon.png" /> </image> </ImageView> </graphic> </Button> </items> </ToolBar> </children> </AnchorPane>
Et ma classe java:
package org.JonathanSoftware.presentation; import javafx.application.Application; import javafx.stage.Stage; public class ViewController extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage primaryStage) { primaryStage.show(); } }
Merci d'avance pour votre réponse,
Javaprogrammer43
A voir également:
- Erreur : des composants dexécution javafx obligatoires pour exécuter cette application sont manquants.
- Connaitre les composants de son pc - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Desinstaller application windows - Guide
- Application pour apprendre à coder - Guide
- Application pour voir qui regarde mon profil facebook gratuit - Guide
1 réponse
Bonjour,
Tu ne vas pas pouvoir faire du JavaFX 15 en codant en Java 7. Dans la documentation de JavaFX 15 il est précisé d'utiliser soit Java 11 (la dernière version LTS), soit Java 15 (la dernière version non LTS).
Dans la rubrique Maven de la documentation tu trouveras un exemple d'archetype pour générer un projet Java FX avec Maven (je viens de tester avec un JDK 11 configuré dans JAVA_HOME)
Tu ne vas pas pouvoir faire du JavaFX 15 en codant en Java 7. Dans la documentation de JavaFX 15 il est précisé d'utiliser soit Java 11 (la dernière version LTS), soit Java 15 (la dernière version non LTS).
Dans la rubrique Maven de la documentation tu trouveras un exemple d'archetype pour générer un projet Java FX avec Maven (je viens de tester avec un JDK 11 configuré dans JAVA_HOME)
mvn archetype:generate -DarchetypeGroupId=org.openjfx -DarchetypeArtifactId=javafx-archetype-simple -DarchetypeVersion=0.0.3 -DgroupId=org.openjfx -DartifactId=sample -Dversion=1.0.0 -Djavafx-version=15.0.1 cd sample mvn clean javafx:run
Toutefois je te conseille de reprendre la configuration de zéro via l'archetype comme je l'ai indiqué pour vérifier que ta configuration fonctionne bien - y compris sur intellij - avant de commencer à modifier ton projet.
Parce que là avec le peu de code que tu nous montres il y a déjà pas mal de trucs faux, par exemple l'incohérence entre ta classe principale ViewController et la configuration
Ça sent le copier coller, pris de différents codes sur internet, qui n'ont rien à voir ensembles et qui ne sont peut être même pas liés aux mêmes versions de JavaFX (qui débutait à peine à l'époque de Java 7 et a beaucoup changé depuis).
Une fois que la configuration du projet sera stable tu seras sûr que le moindre bug sera uniquement lié à ton code.
Ddans les archetype il y en a également un qui utilise du fxml, c'est peut-être celui-ci que tu devrais tester :
Tu verras que le pom.xml généré est nettement plus simple que celui que toi tu avais.
Remarque : Pour construire un projet IntelliJ à partir d'un pom.xml tu peux utiliser la commande qui va générer les fichiers .iml .ipr et .iws de ton projet.