web-dev-qa-db-fra.com

Quelle est la différence entre les options de gestion de la bibliothèque jar exécutable?

J'utiliserai donc Java Web Start pour déployer l'application Java. Lors de l'exportation vers un fichier exécutable, Eclipse Helios propose trois options).

  • Extraire les bibliothèques requises dans JAR
  • Empaqueter les bibliothèques requises dans JAR
  • Copiez les bibliothèques requises dans le sous-dossier à côté de JAR.

Quelles sont les différences et comment affecteront-elles mon fichier .jnlp?

Si c'est un seul pot, n'est-ce pas plus facile car je n'aurais pas à écrire tous les chemins différents vers toutes les bibliothèques qu'il utilise?

S'il y a des changements à la fois dans la bibliothèque et dans l'application, un seul pot serait une meilleure solution? Ou aurais-je besoin de <jar href=''> pour chaque bibliothèque individuelle?

Notez également que je dois utiliser des bibliothèques natives comme les fichiers .dll et .so.

75
KJW
  1. Extraire les bibliothèques requises dans JAR - Extrait les fichiers .class Réels des bibliothèques que votre application utilise et place ces fichiers .class Dans le JAR exécutable. Ainsi, le JAR exécutable contiendra non seulement les fichiers .class De votre application, mais aussi les fichiers .class De toutes les bibliothèques que votre application utilise.

  2. Empaqueter les bibliothèques requises dans JAR - Place les fichiers JAR réels des bibliothèques dans votre JAR exécutable. Normalement, un fichier JAR dans un fichier JAR ne peut pas être chargé par la JVM. Mais Eclipse ajoute des classes spéciales au JAR exécutable pour rendre cela possible.

  3. Copiez les bibliothèques requises dans le sous-dossier à côté de JAR - Garde les JAR de bibliothèque complètement séparés du JAR exécutable, de sorte que le JAR exécutable ne contiendra que les fichiers .class De votre application.

L'option n ° 2 est pratique car elle regroupe parfaitement tout dans un seul fichier JAR et garde les fichiers JAR de la bibliothèque séparés des fichiers .class De votre application.

Cependant, l'inconvénient de tout emballer dans un seul JAR (options # 1 et # 2) est que, si vous mettez à jour votre application, l'utilisateur devra télécharger plus de données pour mettre à jour l'application. Si les fichiers JAR sont conservés séparément, l'utilisateur n'aura qu'à télécharger le fichier JAR qui contient votre code d'application, au lieu d'un seul fichier JAR massif contenant votre code d'application et tout le code de la bibliothèque.

133
Michael