Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JAVAFX] deployer une application javafx(urgent)

Ayant une bd sqlite et des fichiers audios

    19 juin 2017 à 14:30:48

    Bonsoir a tous.

    J'ai developpe une application en javafx(utilisant une bd SqLite) sous netbeans et maintenant, je voudrais creer les installateurs(.exe et .msi). J'ai donc installe wix et innoSetup. Dans mon fichier build.xml, j'ai mi le code suivant:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <target name="-post-jfx-deploy">
    <fx:deploy width="${javafx.run.width}" height="${javafx.run.height}"
    nativeBundles="all"
    outdir="${basedir}/${dist.dir}" outfile="${application.title}">
    <fx:application name="${application.title}" mainClass="${javafx.main.class}"/>
    <fx:resources>
    <fx:fileset dir="${basedir}/${dist.dir}" includes="*.jar"/>
    <fx:fileset dir="dist" includes="lib/*.jar"/>
    </fx:resources>
    <fx:info title="${application.title}" vendor="${application.vendor}"/>
    </fx:deploy></target>

    apres avoir fait clean and build project, les installateurs sont crees.

    Seulement, quand j'installe l'application, mon fichier de base de donnees n'est plus accessible ou du moins, mes requetes ne retournent aucun resultat. De meme la musique de fond ne joue plus.

    Si quelqu'un connais un moyen de resoudre ce probleme, je lui dis merci d'avance.

    • Partager sur Facebook
    • Partager sur Twitter
      19 juin 2017 à 14:35:58

      Comme appelle tu les ressource dans ton projet ?

      Et comment créer tu ta base sql lite ?

      Il y a 90% de chance que tu ne linke pas les ressource dans ton build, ou bien que tu les charges de la mauvaise manière, après sans le code, il est difficile d'en dire plus.

      • Partager sur Facebook
      • Partager sur Twitter
        19 juin 2017 à 22:11:35

        Merci pour ta reponse florent.

        Voici comment j'accede a mes resources.

        - Pour le fichier de musique

        public static final String BIP_SONNORE = "src\\damh\\assets\\media\\2049.mp3";
        String path = "src\\damh\\assets\\media\\music.mp3";
        Media media = new Media(new File(path).toURI().toString());
        MediaPlayer mediaPlayer = new MediaPlayer(media);
        mediaPlayer.setAutoPlay(true);

        - Pour le fichier de base de donnees(le fichier est directement dans le repertoire racine du projet)

        c = DriverManager.getConnection("jdbc:sqlite:damh.db");

        Je rappelle que lorsque je compile avec netbeans, tout marche tres bien.

        Merci d'avance pour vos reponses.



        • Partager sur Facebook
        • Partager sur Twitter
          20 juin 2017 à 9:01:08

          Peut tu vérifier que les ressources sont bien inclus au jar quand tu compile ?

          Sinon pour charger le mp3 je te conseille de passer par le ClassLoader

          https://www.tutorialspoint.com/java/lang/classloader_getresource.htm

          Sinon un conseil rajoute un logger à ton projet, cela te permettra de voir plus facilement le problème (du genre une exception lors de la création de la connexion sqlLite et possiblement un fichier non trouvé pour la musique).

          il faut savoir que l'ide à tendance à compiler (lors du exécution) un peu différemment d'une compilation en jar.

          • Partager sur Facebook
          • Partager sur Twitter
            20 juin 2017 à 11:42:03

            Les fichiers de musique sont bien inclus dans le .jar.

            Pas le fichier de base de donnees.

            Merci pour ton aide. Je regarde ca et je te tiens informe

            • Partager sur Facebook
            • Partager sur Twitter
              23 juin 2017 à 15:58:06

              Pourquoi ne pas tout inclure dans le .jar (ainsi que le fichier de base de données) ?

              Lors de l'exécution il suffit de vérifier l'existence de chaque fichier puis de les copier du .jar vers l'extérieur s'ils ne sont pas présents. Ça fait une sorte d'archive auto-extractible (On copie du coup avec le classloader, comme l'a dit florent).

              • Partager sur Facebook
              • Partager sur Twitter
              Error 2006, MySQL server has gone away

              [JAVAFX] deployer une application javafx(urgent)

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown