Commande d'empaquetage jpackage (JDK14 et supérieur)

Les développeurs Java souhaitent depuis longtemps créer des applications pouvant être installées directement sur la plate-forme native, plutôt que de distribuer des jars et de configurer le classpath. À l'aide de jpackage, les applications Java peuvent être installées/désinstallées de la manière dont les utilisateurs de plates-formes spécifiques l'utilisent, il prend en charge les formats msi et exe sous Windows, pkg et dmg sous MacOS, et deb et rpm sous Linux. Les utilisateurs finaux ne devraient pas remarquer de différence lors de l'installation d'applications créées avec jpackage.

La distribution des applications Java a toujours été un problème gênant. En effet, l'exécution d'une application Java nécessite le support d'une machine virtuelle. Seul le fichier JAR fourni par l'application Java ne suffit pas. La machine cible doit également installer un JDK ou un JRE avec une version correspondante. Avec la popularité des technologies cloud natives et de conteneurisation, les applications Java peuvent être packagées et distribuées sous la forme d'images de conteneurs, ce qui réduit considérablement la difficulté de distribution. Cependant, il existe encore de nombreuses applications Java qui doivent être installées directement sur la machine du client.

La solution habituelle consiste à utiliser un outil d'installation tiers, tel que install4j, pour créer un package d'installation pour l'application. Le package d'installation est responsable de l'empaquetage de l'application et de l'environnement d'exécution Java dont elle dépend. Le problème avec l'installation d'outils est qu'ils sont encombrants et souvent payants. Souvent, nous avons simplement besoin d'exécuter un programme Java. Par exemple, exécuter des outils de migration de données écrits en Java sur la machine du client, des frameworks tiers tels que : quarkus, etc.
 

La sortie de jpackage est une image d'application Java contenant toutes les dépendances Java requises. Les images sont stockées dans un répertoire unique sur le système de fichiers et peuvent contenir les éléments suivants :

  • lanceur d'applications natif
  • Image d'exécution Java, y compris les modules d'application lors de la modularisation des applications
  • Ressources d'application telles que jar, ico, png
  • Fichiers de configuration tels que plist, cfg, properties



L'outil jpackage devrait faire partie du JDK 13 dans le nouveau module jdk.jpackage.

L'outil jpackage a deux modes :

  • create-image - Générer des images d'application spécifiques à la plate-forme
  • create-installer - Génère des programmes d'installation spécifiques à la plate-forme pour les applications



Pour générer une image d'application modulaire :
 

jpackage create-image --output outputdir --name AppName \ 
    --main- class  package .ClassName -module moduleName -p modulePath 
jpackage create-image --o outputdir -n AppName \ 
    -c package .ClassName -m moduleName -p modulePath




Pour générer une image d'application non modulaire :
 

jpackage create-image --input inputdir --output outputdir \ 
    --name AppName --main- class  package .ClassName --main-jar MyJar.jar 
jpackage create-image -i inputdir -o outputdir -n AppName \ 
    -c package .ClassName -j MyJar.jar




Pour générer un programme d'installation d'application :
 

jpackage create-installer -i inputdir -o outputdir \ 
    -n -c package .ClassName -j MyJar.jar 
jpackage create-installer -o outputdir -n \ 
    --app-image 



Pour générer un programme d'installation d'exécution Java :
 

jpackage create-installer --runtime-installer\ 
    --name --output outputdir 
jpackage create-installer --runtime-installer \ 
    -n -o outputdir --runtime-image 




Quelques options disponibles pour toutes les plateformes :

  • --main-jar -j <fichier jar principal> - le fichier JAR principal de l'application ; contient la classe principale
  • --main-class -c <class name> - Nom qualifié de la classe principale de l'application à exécuter
  • --installer-type <type> - type de programme d'installation créé en mode création d'image (msi, exe, rpm, deb, dmg, pkg, pkg-app-store)
  • --runtime-installer - Génère des programmes d'installation spécifiques à la plate-forme pour le runtime Java.
  • --jvm-args <java vm arguments> - Arguments Java transmis à la machine virtuelle
  • --install-dir <path to file> - Chemin absolu vers le répertoire d'installation de l'application


Certaines options ne sont disponibles que sur la plate-forme Mac OS X :

  • --mac-sign - demande que le paquet soit signé
  • --mac-bundle-name <chaîne de nom> - Le nom de l'application affiché dans la barre de menus
  • --mac-app-store-category <chaîne de catégorie> - Mac App Store类别
  • --mac-signing-keychain <path to file> - Chemin vers le trousseau à utiliser



D'autres choses intéressantes à propos de jpackage incluent :

  • Prise en charge de l'empaquetage des applications Java pour les rendre aptes à être soumises aux magasins d'applications Windows ou MacOS
  • Intégration native lors de la définition des associations de fichiers pour lancer l'application lors de l'ouverture d'un fichier avec un suffixe associé
  • Intégration native pouvant lancer des groupes de menus spécifiques à la plate-forme, tels que les éléments du menu Démarrer sous Windows
  • La compilation croisée n'est pas prise en charge ; les packages Windows doivent être créés en exécutant jpackage sous Windows
  • Les fichiers légaux au-delà de ceux déjà fournis dans le fichier JMOD, tels que les fichiers de licence individuels, ne seront pas pris en charge
  • Ne prend pas en charge l'écran de démarrage natif
  • Ne prend pas en charge le mécanisme de mise à jour automatique
  • Cet outil n'est pas disponible sur la plate-forme Solaris
  • Les applications Java Web Start et les fonctionnalités spécifiques à JavaFX ne sont pas prises en charge
  • L'outil n'a pas d'interface graphique ; seule une interface de ligne de commande (CLI) est fournie

Je suppose que tu aimes

Origine blog.csdn.net/a1058926697/article/details/130883164
conseillé
Classement