2017-04-22 2 views
0

J'ai un projet Java FX Construire avec Maven et utiliser le FXLauncher https://github.com/edvin/fxlauncher pour activer la mise à jour automatique de l'application. Les programmes d'installation natifs sont créés à l'aide de la commande de déploiement javapackager https://docs.oracle.com/javase/8/docs/technotes/tools/unix/javapackager.html.FXLauncher - Comment exécuter en mode sans tête avec les installateurs natifs?

Je veux que le FXLauncher démarre en mode sans écran. Selon la documentation cela se fait à partir de la fxlauncher avec la commande correspondante sur la ligne de commande:

java -classpath fxlauncher.jar fxlauncher.HeadlessMainLauncher 

Le problème que je suis struggeling avec est que je ne peux pas comprendre la lecture de la documentation javapackager comment configurer le COMAND deploy à créer un exécutable démarrant le fxlauncher de cette façon. Des idées?

Merci

+0

Peut-être que vous voulez vérifier le [plugin javafx-maven] (https://github.com/javafx-maven-plugin/javafx-maven-plugin) et juste définir le 'fxlauncher.HeadlessMainLauncher' en tant que mainClass. – FibreFoX

+0

Bonjour @FibreFoX merci pour votre réponse. J'ai déjà essayé d'utiliser javafx-maven-plugin pour créer mes bundles natifs avant de passer au javapackager. Malheureusement, le FXLauncher nécessite d'exécuter certaines étapes (création et intégration du manifeste app.xml dans le fichier fxlauncher.jar) après avoir créé le fichier jar d'application et copié les dépendances et avant de créer les bundlers natifs. Le plugin jafafx-maven ne supporte pas les exécutions pour cela. – bj03rnv0ss

+0

J'ai vérifié la documentation de ce projet fxlauncher: vous avez raison, il n'y a pas de support pour ce projet, et comme il y a de la "magie moche", je doute que cela soit inclus. – FibreFoX

Répondre

0

j'ai pu répondre à cette question grâce à l'auteur de FXLauncher lui-même:

vous En ce moment à changer le paramètre principal Classe de META-INF/MANIFEST.MF à fxlauncher.HeadlessMainLauncher à l'intérieur de fxlauncher.jar avant de déployer votre application.

Si vous voulez faire cela en une étape d'exécution, il serait probablement ressembler à:

<execution> 
    <id>configure-headless-launcher</id> 
    <phase>package</phase> 
    <goals> 
     <goal>exec</goal> 
    </goals> 
    <configuration> 
     <executable>jar</executable> 
     <workingDirectory>${app.dir}</workingDirectory> 
     <arguments> 
      <argument>uef</argument> 
      <argument>fxlauncher.HeadlessMainLauncher</argument> 
      <argument>fxlauncher.jar</argument> 
     </arguments> 
    </configuration> 
</execution> 

Mettez-le dans pom.xml après l'étape embed-manifeste en lanceur.