2009-02-24 9 views
5

J'ai écrit un programme dans Eclipse IDE qui utilise la classe BouncyProvider de BouncyCastle.jar. Donc, pour compiler ma classe j'ai ajouté BouncyCastle.jar dans mon classpath de projet et il compile parfaitement.Comment exclure un jar externe lors de la création d'un fichier exécutable en eclipse ou en ligne de commande?

Maintenant, je veux exporter mon projet en JAR Runnable, donc quand je le fais depuis Eclipse, il ajoute par défaut les classes de BouncyCastle.jar dans ce fichier exécutable. Mais je veux garder mon application Jar et BouncyCastle.jar différents les uns des autres.

Comment puis-je y parvenir? Quelqu'un peut-il aider s'il vous plaît?

Répondre

1

Malheureusement, on dirait que vous ne pouvez pas réellement faire cela. Un fichier JAR ne peut pas utiliser un autre fichier JAR stocké à l'intérieur de lui-même.

Je dirais que, sauf si vous avez une raison vraiment forte raison pour laquelle vous ne pouvez pas déballer votre BouncyCastle.jar (comme les problèmes de licence peut-être?)

juste le laisser déballer (que vous pouvez le faire en ajoutant BouncyCastle .jar comme une archive externe dans Eclipse :)

Right-click on your project 
Build Path... 
Add External Archives... 
Add your archive 
Export as runnable JAR) 

et de regarder les noms de vos paquets pour les conflits.

Here's an open Java bug ID I found describing your situation

One-JAR may help - a open source solution to your situation

+0

On pourrait supposer l'OP veut avoir deux bocaux séparés, avec le pot d'application se référant au pot BouncyCastle au moyen de la directive classpath dans le manifeste. –

3

On dirait que vous voulez utiliser l'assistant "Exporter un fichier JAR" au lieu de l'assistant "Exporter fichier JAR Runnable". Lors de l'exportation d'un fichier jar exécutable exécutable, Eclipse tente de rassembler tout ce qui est nécessaire pour exécuter l'application dans une seule archive. D'un autre côté, l'assistant "Export JAR File" vous donne plus de contrôle sur ce qui est empaqueté dans l'archive. Vous pouvez toujours créer un fichier jar exécutable, mais vous devez vous assurer d'inclure BouncyCastle.jar sur le chemin de classe lorsque vous exécutez le fichier jar. Voici les instructions pas-à-pas:

  1. Cliquez sur "Fichier | Exporter". La boîte de dialogue Export s'affiche.
  2. Développez le dossier "Java" et sélectionnez "fichier JAR" (pas le fichier "Runnable JAR "). Cliquez sur Suivant. Sur la page de spécification du fichier JAR , choisissez les classes que vous souhaitez inclure dans le fichier jarre et spécifiez le nom du fichier JAR à créer. Cliquez sur Suivant. Sur la page Options de conditionnement JAR, , sélectionnez les options qui vous conviennent. Les valeurs par défaut sont probablement correctes. Cliquez sur Suivant.
  3. Sur la spécification du manifeste JAR, assurez-vous de sélectionner la "classe principale" pour votre fichier jar. C'est la classe qui sera exécutée lorsque vous exécutez le fichier jar. Si vous videz , le fichier JAR ne sera pas exécutable. Cliquez sur Terminer pour créer le fichier jar.

Vous devriez être en mesure d'exécuter le fichier jar en exécutant « java jar myjarfile.jar -classpath BouncyCastle.jar » à partir d'une ligne de commande.

0

Il ressemble à ceci a été ajouté dans Eclipse 3.5 Milestone 5. Voir la News pour la dernière version et bug 219530