IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaFX Discussion :

Problème avec le dossier "dist" et mon *.jar


Sujet :

JavaFX

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2014
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 61
    Points : 51
    Points
    51
    Par défaut Problème avec le dossier "dist" et mon *.jar
    Bonjour,

    j'ai remarquer que mon petit programme en JavaFX fonctionne dans Netbeans mais lorsque je vais dans le dossier 'dist" et que je lance le .jar il ne se passe rien ? voici mon code :

    le Controller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    package gestionreparation;
     
    import javafx.fxml.FXML;
     
    public class Controller {
     
     
        // Méthode d'initialisation
        @FXML
        public void initialize() {
     
        }
    }
    le sampl.fxml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?xml version="1.0" encoding="UTF-8"?>
     
    <?import javafx.scene.control.Tab?>
    <?import javafx.scene.control.TabPane?>
    <?import javafx.scene.control.TableColumn?>
    <?import javafx.scene.control.TableView?>
    <?import javafx.scene.layout.AnchorPane?>
    <?import javafx.scene.layout.VBox?>
     
    <AnchorPane fx:id="anchorpane1" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="700.0" prefWidth="950.0" style="-fx-background-color: #FFFFFF;" xmlns="http://javafx.com/javafx/23.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="gestionreparation.Controller">
       <children>
          <TableView editable="true" layoutX="14.0" layoutY="396.0" nodeOrientation="LEFT_TO_RIGHT" prefHeight="290.0" prefWidth="930.0" tableMenuButtonVisible="true" AnchorPane.bottomAnchor="14.0" AnchorPane.leftAnchor="5.0" AnchorPane.rightAnchor="5.0" AnchorPane.topAnchor="395.0">
            <columns>
              <TableColumn prefWidth="75.0" text="C1" />
              <TableColumn prefWidth="75.0" text="C2" />
            </columns>
          </TableView>
          <TabPane layoutX="4.0" layoutY="14.0" prefHeight="378.0" prefWidth="940.0" tabClosingPolicy="UNAVAILABLE" AnchorPane.leftAnchor="5.0" AnchorPane.rightAnchor="5.0" AnchorPane.topAnchor="5.0">
            <tabs>
              <Tab text="Envoi">
                   <content>
                      <AnchorPane prefHeight="200.0" prefWidth="200.0">
                         <children>
                            <VBox layoutX="26.0" layoutY="29.0" prefHeight="300.0" prefWidth="100.0" style="-fx-background-color: linear-gradient(to bottom, #FF7E5F, #FEB47B);;" AnchorPane.topAnchor="25.0" />
                         </children>
                      </AnchorPane>
                   </content>
                </Tab>
              <Tab text="Retour">
                   <content>
                      <AnchorPane prefHeight="200.0" prefWidth="200.0" />
                   </content>
                </Tab>
                <Tab text="Edition Document">
                  <content>
                    <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
                  </content>
                </Tab>
            </tabs>
          </TabPane>
       </children>
    </AnchorPane>
    et le main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    package gestionreparation;
     
    import javafx.application.Application;
    import javafx.fxml.FXMLLoader;
    import javafx.scene.Parent;
    import javafx.scene.Scene;
    import javafx.stage.Stage;
     
    public class GestionReparation extends Application {
     
        @Override
        public void start(Stage primaryStage) throws Exception {
            // Chargement de la fenêtre depuis le fichier FXML
            Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
            primaryStage.setTitle("Gestion des réparations");
     
            // Définir la scène avec une taille initiale
            primaryStage.setScene(new Scene(root, 1200, 700));
     
            // Afficher la fenêtre
            primaryStage.show();
        }
     
        public static void main(String[] args) {
            launch(args);
        }
     
    }

  2. #2
    doc
    doc est déconnecté
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2002
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 104
    Points : 458
    Points
    458
    Par défaut
    J'ai galéré un moment avec ça pour les JDK > 1.8
    Le plus simple est d'utiliser jpackage qui va créer un exécutable avec le jar
    Depuis j'utilise la méthode décrite par Bouye dans le tutoriel https://kotlin.developpez.com/actu/3...blog-de-bouye/ (la partie jpackage, pas kotlin).
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 875
    Points : 22 942
    Points
    22 942
    Billets dans le blog
    53
    Par défaut
    Ca aurait été bien de lancer via la ligne de commande avec java -jar <nom du fichier JAR> histoire d'avoir l'erreur, mais c'est probablement qu'il trouve pas JavaFX ou sa partie native. Ou alors que la version des classes ou du JAR est pas lisible par cette version de java.
    Probablement que le java par défaut du système est pas celui fourni par le JDK Zulu.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2014
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 61
    Points : 51
    Points
    51
    Par défaut
    Bonjour

    j'ai tapé ca dans netbeans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ java -jar GestionReparation.jar
    Error: Could not find or load main class gestionreparation.GestionReparation
    Caused by: java.lang.NoClassDefFoundError: javafx/application/Application
    mon fichier jar est bien dans le dosssier dist.
    J'utilise Zulu en platform java.

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 875
    Points : 22 942
    Points
    22 942
    Billets dans le blog
    53
    Par défaut
    java.lang.NoClassDefFoundError: javafx/application/Application : les classes de JavaFX ne sont pas trouvées par le Java qui est invoqué sur la ligne de commande. Peut-être un soucis de CLASSPATH, MODULEPATH ou le besoin de lister les modules utilisés par une app non-modulaire lors d'un lancement sur la ligne de commande ?

    Ceci dit, dans mon cas, j'ai repris le projet NetBeans créé tantôt pour générer un JAR de test, et j'ai aucun soucis pour le lancer avec la ligne de commande sans autre paramètre que -jar <nom du fichier jar>. Par contre j'ai bien pris soin d’être sur que c'est le java de Zulu qui est celui utilise et non pas le JDK de l'OpenJDK (sans JavaFX intégré), qui est défini comme mon JDK par défaut dans mes variables systèmes.

    Avant (trouve pas JavaFX ce qui est normal*) :

    Code CMD : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >java --version
    openjdk 23 2024-09-17
    OpenJDK Runtime Environment (build 23+37-2369)
    OpenJDK 64-Bit Server VM (build 23+37-2369, mixed mode, sharing)
     
    >java -jar nb23_test_fx.jar
    Error: Could not find or load main class javafxapplication1.JavaFXApplication1
    Caused by: java.lang.NoClassDefFoundError: javafx/application/Application

    Apres (lancement OK) :

    Code CMD : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >set PATH="C:\Program Files\Java\zulu23.30.13-ca-fx-jdk23.0.1-win_x64\bin";%PATH%
     
    >java --version
    openjdk 23.0.1 2024-10-15
    OpenJDK Runtime Environment Zulu23.30+13-CA (build 23.0.1+11)
    OpenJDK 64-Bit Server VM Zulu23.30+13-CA (build 23.0.1+11, mixed mode, sharing)
     
    >java -jar nb23_test_fx.jar


    (*) Et cela se corrige dans mon cas, en lancant avec :

    Code CMD : Sélectionner tout - Visualiser dans une fenêtre à part
    java --module-path="<chemin du SDK JavaFX de Gluon>\lib" --add-modules=javafx.graphics,javafx.controls -jar nb23_test_fx.jar
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. [Shell] Problème avec le Back-quote (ksh)
    Par bob94700 dans le forum Linux
    Réponses: 3
    Dernier message: 27/01/2008, 13h45
  2. Sudo problème avec les simples quotes
    Par Tronche dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 23/03/2007, 13h02
  3. [MySQL] Problème avec un double quote
    Par wormseric dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/01/2007, 15h44
  4. [Tableaux] souci avec des simples quotes
    Par Jean Fi dans le forum Langage
    Réponses: 6
    Dernier message: 29/03/2006, 21h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo