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

Je vais donc utiliser Java Web Start pour déployer l’application Java. Lors de l’exportation vers un bocal Runnable, il y a trois options dans eclipse Helios.

  • Extraire les bibliothèques requirejses dans JAR
  • Empaquetez les bibliothèques requirejses dans JAR
  • Copier les bibliothèques requirejses dans un sous-dossier situé à côté de JAR.

Quelles sont les différences, et comment vont-elles affecter mon fichier .jnlp?

Si c’est un simple jar, n’est-ce pas plus facile parce que je n’aurais pas à écrire tous les différents chemins 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 pour chaque bibliothèque individuelle?

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

  1. Extraire les bibliothèques requirejses dans JAR – Extrait les fichiers .class réels des bibliothèques utilisées par votre application et place ces fichiers .class dans le JAR exécutable. Ainsi, le fichier JAR exécutable contiendra non seulement les fichiers .class de votre application, mais également les fichiers .class de toutes les bibliothèques utilisées par votre application.

  2. Empaquetez les bibliothèques requirejses dans JAR – Met 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. Copier les bibliothèques requirejses dans un sous-dossier à côté de JAR – Conserve les JAR de la bibliothèque complètement séparés du JAR exécutable, de sorte que le JAR exécutable contienne uniquement les fichiers .class de votre application.

L’option n ° 2 est pratique car elle regroupe toutes les données dans un seul fichier JAR et permet de séparer les fichiers JAR de la bibliothèque des fichiers .class de votre application.

Toutefois, 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 d’autres données pour mettre à jour l’application. Si les fichiers JAR sont séparés, l’utilisateur n’aura qu’à télécharger le fichier JAR contenant le code de votre application, au lieu d’un seul fichier JAR massif contenant votre code d’application et tout le code de la bibliothèque.