Comment inclure des fichiers JAR externes dans mon propre JAR de projet
J'ai une application Java et créé un fichier JAR et déployé.
L'Application utilise externe Pots comme le Log4J JAR. Lors de la création de mon fichier JAR, comment dois-je inclure tous les dépendants Bocaux dans mes archives?
Afin d'obtenir mon App de travail, je vais avoir à copier le Log4J JAR dans le même répertoire que mon propre POT un peu défait le but de la jarre. Ne serait-il pas plus élégant d'avoir 1 seul fichier JAR à déployer?
source d'informationauteur Wilko
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez Eclipse, Vous pouvez extraire tous les fichiers inclus dans un runnable jar comme ceci:
Vous pouvez choisir de les dépendances du paquet des bocaux individuels fichiers jar ou les extraire dans le JAR généré.
Vous pouvez utiliser quelque chose comme Un BOCAL de package de votre application Java avec ses dépendances dans un seul fichier Jar exécutable (Un BOCAL utilise un classloader personnalisé pour faire des Pots de nidification possible).
Vous avez à développer la bibliothèque bocaux dans le même endroit où vos classes compilées, puis prendre un pot. Selon la façon dont votre processus de création est mis en place, il peut y avoir plusieurs façons de faire cela. C'est pas sorcier - un pot est juste une archive zip avec un répertoire META-INF à la racine.
Garder BOCAL séparé est meilleur car il est facile à mettre à jour que des Pots à ses nouvelles versions, sans toucher à toute autre configuration. Comme de votre problème d'avoir à copier chaque fichier sur le même emplacement de votre POT, vous pouvez toujours utiliser Java
CLASSPATH
et comprennent toutes les JAR de votre application de chemin de classe.Un POT n'est pas lui-même capable de nidification d'autres Pots, comme vous l'avez découvert.
Traditionnellement, on pourrait distribuer une archive ZIP ou autre installation qui permettrait de détendre l'application JAR (le vôtre), ainsi que tout support Pots dans l'emplacement approprié pour le classpath de l'accès. Souvent, ensuite, l'application a été invoquée par le biais d'un script qui a appelé le primaire POT et a créé de celui qui a inscrit le soutien des Bocaux.
Que d'autres affiches ont noté, vous avez quelques options pour créer un super-JAR si c'est ce que vous voulez.
Vous pouvez utiliser Maven + assemblée plugin (http://maven.apache.org/plugins/maven-assembly-plugin/)
BTW, c'est probablement pas le moyen le plus facile, si vous n'avez pas de travail avec maven.