FAQ JavaFXConsultez toutes les FAQ
Nombre d'auteurs : 4, nombre de questions : 507, dernière mise à jour : 2 novembre 2016 Ajouter une question
Cette FAQ a été réalisée à partir des questions fréquemment posées sur le forum JavaFX de http://java.developpez.com ainsi que l'expérience personnelle des auteurs.
Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.
Sur ce, nous vous souhaitons une bonne lecture.
- Comment puis-je déployer mon application JavaFX ?
- Où trouver la documentation sur le déploiement d'applications JavaFX ?
- Qu'est-ce que javapackager ?
- Où trouver la documentation de javapackager ?
- Quels sont les prérequis pour utiliser javapackager ?
- Comment générer un lanceur ou installeur natif depuis NetBeans
- Comment générer un lanceur 32 bits sur un système 64 bits dans NetBeans ?
- Comment spécifier l'icône de l'application dans NetBeans ?
- Comment activer la signature numérique dans NetBeans ?
- Pourquoi GateKeeper intervient-il lors du lancement de mon application JavaFX sur Mac OS X ?
- Java Security empêche mon application JavaFX de s'exécuter en tant qu'Applet. Pourquoi ?
- Java Security empêche mon application JavaFX de s'exécuter via Java Web Start. Pourquoi ?
Il existe plusieurs manières pour déployer une application JavaFX.
- Si l'application est petite, ne nécessite pas de configuration spéciale ou de dépendance, il est plus simple de la fournir en tant que fichier JAR exécutable. Depuis le JDK8, les runtimes JavaFX sont sur le CLASSPATH ; il n'y a donc aucune configuration spéciale à effectuer pour démarrer une application JavaFX : sur la plupart des systèmes, il suffit de double-cliquer sur l’icône du fichier JAR. Cette méthode ne permet pas de spécifier des paramètres à la JVM.
Attention cependant, certaines applications de gestion d'archives peuvent parfois changer les paramètres d'associations de fichiers et faire qu'elles ouvrent le fichier JAR au lieu de laisser l’interpréteur Java l’exécuter. - Pour les systèmes ne prenant pas en charge les associations de fichiers, on peut fournir un fichier batch ou un raccourci permettant de lancer l’interpréteur Java sur le fichier JAR via la commande :
Code : Sélectionner tout java -jar <nom du fichier JAR>
Cela peut permettre également de spécifier d'autres paramètres de la JVM. - Certains outils permettent de générer un lanceur natif, un exécutable pour votre système ciblé, qui se chargera d'invoquer la JVM sur votre fichier JAR. Certains de ces outils permettent d'empaqueter la JVM avec l'application ce qui permet de l’exécuter sur des machines sur lesquelles Java n'est pas installé. Cela permet aussi de s'assurer que la bonne version de Java est utilisée avec l'application.
Parmi les solutions gratuites, on peut citer :
- javapackager - un outil qui est fourni avec le JDK ;
- Launch4J - un outil multiplateforme permettant de générer des lanceurs natifs Windows ;
- WinRun4J - un lanceur natif Windows précompilé qu'il est possible de customiser ;
Certaines de ces bibliothèques prennent également en charge la génération d’installeurs pour le système ciblé. - Il est possible de déployer votre application via Java Web Start. Cette méthode de déploiement nécessite que votre application soit signée numériquement par un certificat valide délivré par une autorité reconnue.
- Vous pouvez inclure votre application en tant qu'Applet dans une page web. Cette méthode de déploiement nécessite que votre application soit signée numériquement par un certificat valide délivré par une autorité reconnue.
Il est possible de trouver de la documentation sur le déploiement des applications JavaFX chez Oracle.
L’outil javapackager (anciennement javafxpackager) est un outil intégré dans le JDK depuis la version 7. Il s'agit d'un outil en ligne de commande qu'il est possible d’intégrer dans une tâche ANT.
Cet outil permet de générer un lanceur natif et un installeur natif pour une application Java (qui peut être autre que JavaFX : Swing, etc.). Lors de la création de lanceurs natifs, cet outil placera une copie de la JVM avec l'application ce qui permet de l’exécuter sur des machines où Java n'est pas initialement présent. L'outil javapackager prend en charge la génération de fichiers JNLP et HTML pour les modes Java Web Start et Applet. Cet outil prend également en charge la signature numérique des fichiers JAR.
À l'heure actuelle, cet outil ne génère des lanceurs et installeurs natifs que pour la plateforme sur laquelle il est exécuté. Par exemple :
- pour produire des lanceurs et installeurs natifs Windows, il faut exécuter javapackager sur Windows ;
- pour produire des lanceurs et installeurs natifs Mac OS X, il faut exécuter javapackager sur Mac OS X :
- etc.
La documentation de l'outil javapackager est disponible en ligne chez Oracle :
Le guide de déploiement des applications JavaFX contient également un chapitre dédié à javapackager :
Pour certaines de ses fonctionnalités, l'outil javapackager peut nécessiter la présence sur le système d'outils tiers :
- Windows :
- Inno Setup 5 ou supérieur - pour la création d'installeurs exécutables,
- WiX 3.0 ou supérieur - pour la création d'installeurs au format MSI ;
- Linux :
- RPMBuild - pour la création de fichiers RPM,
- Debian packaging tools - pour la création de fichiers DEB.
NetBeans supporte la génération de lanceur et d'installeur natif via javapackager et ANT. Pour activer cette génération, allez dans les propriétés de votre projet, puis dans l'onglet Build/Deployment et cochez la case Enable Native Packaging, puis sur le bouton OK.
Une fois ceci fait, si vous cliquez avec le bouton de droite sur l’icône de votre projet, le menu contextuel dispose désormais d'une entrée Package As qui permet d'effectuer plusieurs actions :
- All Artifacts - crée tout ;
- All Installers - crée tous les installeurs ;
- Image Only - crée un lanceur natif pour le système d'exploitation actuel avec une copie de la JVM ;
- EXE Installer - crée un installeur exécutable. Windows uniquement ;
- MSI Installer - crée un installeur de type MSI. Windows uniquement ;
- DEB Package - crée un package au format DEB. Linux uniquement ;
- RPM Package - crée un package au format RPM. Linux uniquement;
- DMG Image - crée un package au format DMG. Mac OS X uniquement.
Les artéfacts choisis seront générés dans le répertoire dist/bundles du projet.
Sous Windows et Linux, le lanceur natif sera disponible dans le sous-répertoire portant le nom de votre application. Ce répertoire contient :
- le lanceur natif pour votre système d'exploitation ;
- une icône pour votre application. Windows uniquement ;
- le répertoire app contient les fichiers de votre application (JAR principal et dépendances) de même que le fichier package.cfg qui pilote le lanceur natif ;
- le répertoire runtime contient une copie de l’environnement d’exécution Java pour votre système d'exploitation.
Sous Mac OS X, un paquet application sera automatiquement créé contenant tout ce qui est nécessaire pour faire tourner votre programme.
Attention : NetBeans efface le contenu du répertoire dist à chaque nouvelle compilation.
Pour générer un lanceur 32 bits sur un système 64 bits, vous devez installer le JDK 32 bits et modifier la configuration de votre programme pour que celui-ci utilise le JDK 32 bits au lieu du JDK 64 bits. Lors de la génération du lanceur natif, c'est la version 32 bits de javapackager qui sera utilisée et ce dernier utilisera la JVM 32 bits pour produire un exécutable 32 bits.
L’icône de l'application, qui deviendra également l’icône de l’exécutable sous Mac OS X et Windows, doit être placée dans un répertoire package/<nom du système d'exploitation>. Le répertoire package peut être placé où bon vous semble, dans le répertoire de votre projet par exemple.
Le fichier contenant l’icône doit également être au bon format :
- package/windows/myApplication.ico - pour Windows ;
- package/macosx/myApplication.icns - pour Mac OS X ;
- package/linux/myApplication.png - pour Linux. Cependant Linux ne supporte pas les icônes incluses dans les exécutables et donc cette image sera ignorée.
Le répertoire parent du répertoire package doit ensuite être ajouté au CLASSPATH de ANT. Dans NetBeans, allez dans le menu Tools -> Options, puis choisissez l'onglet Java. Dans l'onglet Ant, ajoutez maintenant le répertoire approprié dans la liste Classpath en appuyant sur le bouton Add Directory.... Quand vous avez terminé, cliquez sur OK.
Si tout est correctement configuré, l’icône sera utilisée la prochaine fois que vous générerez les artéfacts.
NetBeans supporte la signature numérique des fichiers JAR de votre application JavaFX. Pour activer cette signature, allez dans les propriétés de votre projet puis dans l'onglet Build/Deployment et cochez la case Request unrestricted access (Enable signing). Cliquez ensuite sur le bouton Edit... pour saisir les détails de votre certificat. Quand vous avez terminé, cliquez sur le bouton OK.
Depuis Mac OS X 10.8, Apple a introduit l’outil GateKeeper pour prévenir l'utilisateur contre du code potentiellement malveillant contenu dans des applications non signées. L'utilisateur peut toujours cependant choisir de valider le lancement de l'application.
Il est possible d’empêcher GateKeeper de surgir en signant numériquement votre paquet d'application app avec votre certificat de développeur Apple.
Par exemple :
Code : | Sélectionner tout |
codesign -s "Mon ID de développeur Apple" monApplication.app
Depuis le JDK 7u51, avec les réglages de sécurité par défaut, il est obligatoire de signer les fichiers JAR d'une Applet avec un certificat numérique valide délivré par une autorité reconnue pour que la JVM accepte de l'exécuter.
Depuis le JDK 7u51, avec les réglages de sécurité par défaut, il est obligatoire de signer les fichiers JAR d'une application Java Web Start avec un certificat numérique valide délivré par une autorité reconnue pour que la JVM accepte de l'exécuter.
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.