Eclipse: Comment construire un fichier jar exécutable avec un fichier jar externe?

J’essaie de créer un programme jar exécutable qui dépend du fichier jar externe téléchargé. Dans mon projet, je les ai inclus dans le chemin de compilation et peut être exécuté et débogué dans eclipse.

Lorsque j’ai essayé de l’exporter dans un fichier jar, je peux exécuter le programme mais je ne peux pas lorsque j’essaie d’appuyer sur un bouton qui inclut les appels de fonction et les classes du fichier jar externe. J’ai modifié les variables d’environnement (Windows XP) CLASSPATH pour inclure les chemins de tous les fichiers JAR externes, mais cela ne fonctionne pas.

Un point à noter est que j’ai reçu des avertissements de compilation lors de l’exportation de mon fichier jar exécutable, mais cela ne montre aucune description des avertissements.

Quelqu’un aurait-il l’amabilité de fournir un guide complet sur la façon d’inclure un programme JAR externe utilisant eclipse?

Eclipse 3.5 a la possibilité de regrouper les bibliothèques requirejses dans le fichier jar exécutable. Fichier -> Exporter … Choisissez jar exécutable et cliquez sur suivant. La fenêtre d’exportation jar exécutable comporte un bouton radio dans lequel vous pouvez choisir de regrouper les bibliothèques requirejses dans le fichier jar.

Vous pouvez le faire en écrivant un manifeste pour votre pot . Jetez un coup d’oeil à l’en – tête Class-Path . Eclipse a la possibilité de choisir votre propre manifeste à l’exportation.

L’alternative consiste à append la dépendance au classpath au moment où vous appelez l’application:

win32: java.exe -cp app.jar;dependency.jar foo.MyMainClass *nix: java -cp app.jar:dependency.jar foo.MyMainClass 

Comment inclure les pots de votre projet dans votre bocal runable:

J’utilise la version Eclipse: 3.7.2 sous Ubuntu 12.10. Je vais aussi vous montrer comment faire le build.xml pour que vous puissiez faire le ant jar de ant jar depuis la ligne de commande et créer votre jar avec d’autres jars importés.

Fondamentalement, vous demandez à Eclipse de construire le build.xml qui importe vos bibliothèques dans votre fichier jar.

  1. Lancez Eclipse et créez un nouveau projet Java, créez un nouveau package ‘mypackage’, ajoutez votre classe principale: Runner Insérez ce code ici.

    entrer la description de l'image ici

  2. Maintenant, incluez le mysql-connector-java-5.1.28-bin.jar d’Oracle qui nous permet d’écrire Java pour se connecter à la firebase database MySQL. Faites cela en cliquant avec le bouton droit sur le projet -> propriétés -> chemin de compilation java -> Ajouter un fichier Jar externe -> choisissez mysql-connector-java-5.1.28-bin.jar.

  3. Exécutez le programme dans eclipse, il devrait fonctionner, et vous dire que le nom d’utilisateur / mot de passe est invalide, ce qui signifie que Eclipse est correctement configuré avec le fichier jar.

  4. Dans Eclipse, cliquez sur File -> Export -> Java -> Runnable Jar File . Vous verrez cette boîte de dialog:

    entrer la description de l'image ici

    Veillez à configurer la case à cocher “Enregistrer en tant que script ant”. C’est ce qui fait que vous pouvez utiliser la ligne de commande pour faire une ant jar plus tard.

  5. Ensuite, allez au terminal et regardez le script ant:

    entrer la description de l'image ici

Donc, vous voyez, j’ai couru le jar et il n’a pas d’erreur parce qu’il a trouvé le mysql-connector-java-5.1.28-bin.jar inclus dans Hello.jar .

Regardez dans Hello.jar: vi Hello.jar et vous verrez de nombreuses références à com/mysql/jdbc/stuff.class

Pour faire la même chose sur la ligne de commande, faites tout cela automatiquement: Renommez buildant.xml en build.xml et remplacez le nom cible de create_run_jar par jar .

Ensuite, à partir de MyProject vous pouvez taper ant jar et boom. Vous avez votre pot dans MyProject. Et vous pouvez l’invoquer en utilisant java -jar Hello.jar et tout fonctionne.

Comme bonne pratique, vous pouvez utiliser un script Ant (fourni avec Eclipse) pour générer votre fichier JAR. Dans ce JAR, vous pouvez avoir toutes les bibliothèques dépendantes.

Vous pouvez même définir l’en-tête Classif de MANIFEST pour pointer vers des fichiers dans votre système de fichiers, mais ce n’est pas une bonne pratique.

Exemple de script Ant build.xml:

                                 

Essayez l’extension fat-jar. Il comprendra tous les pots externes à l’intérieur du pot.

regardez @ java-jar-ignores-classpath-Solution de contournement