2010-12-07 6 views
23

J'essaie d'exporter un projet Java avec Eclipse 3.6.1 vers un conteneur exécutable. Cela fonctionnait correctement mais échouait aujourd'hui, après avoir ajouté quelques Jars supplémentaires à mon chemin de classe.Erreur "doublon d'entrée" lors de l'exportation d'un projet Java vers JAR avec Eclipse

L'erreur est

duplicate entry: some/class.class 

Fait intéressant, il y a une entrée en double pour presque toutes les classes dans mon Buildpath. Même si je n'ai rien changé. Les pots que j'ai ajoutés ne contiennent pas de classes en double. Question: Est-ce une sorte de bug Eclipse? Suis-je en train de négliger quelque chose d'évident? Est-ce que quelqu'un a une idée de ce qui pourrait causer cette erreur?

Vive

+0

Si vous avez généré le script de construction ant, pouvez-vous le poster. –

+0

Voici mon script Ant généré par Eclipse: http://typewith.me/M6bAQ7pUCe –

Répondre

10

Vous pouvez essayer de modifier la ligne

<jar destfile="/Volumes/resi/talosBase.jar" filesetmanifest="mergewithoutmain"> 

dans votre fichier de construction être

<jar destfile="/Volumes/resi/talosBase.jar" filesetmanifest="mergewithoutmain" duplicate="preserve"> 

Cela entraînera fourmi de conserver la première entrée d'un double et ignorer le reste. Le comportement par défaut est "ajouter" afin que vous puissiez vous retrouver avec plusieurs fichiers du même nom complet. L'autre entrée valide pour ce paramètre est "échouer" mais je ne pense pas que cela vous aidera ici.


VIEUX-réponse

Supprimer votre dernier pot runnable créé manuellement ou modifier le script de fourmi généré pour le faire avant de créer un nouveau

+0

La même erreur se produit lorsque je supprime le dernier fichier exécutable. –

+1

S'il vous plaît voir la réponse éditée - ne sais pas si vous recevez un message quand quelqu'un l'édite ou non, mais vous devriez en obtenir un à propos de ce commentaire. –

+1

Merci! Je n'ai jamais utilisé de scripts ant (seulement Eclipse -> export jar), mais maintenant je ne pouvais pas m'en passer. –

1

Nettoyage du projet devrait aider. Ce n'est pas un bug d'éclipse, mais plutôt celui d'un fabricant de jarres. Apparemment, il prend les classes et voit que de telles classes existent déjà et ne peuvent pas comprendre qu'il devrait les remplacer au lieu d'ajouter.

+1

Comment puis-je nettoyer le projet par rapport à buildpath/Jars? –

+0

Trouvé ... le nettoyage n'a aucun effet sur le comportement lors de la génération d'un pot exécutable. Une autre idée? –

0

Nettoyage du projet vous aidera.

0

Essayez de supprimer les bocaux et en ajoutant une fois de plus .. cela a résolu l'erreur pour moi ..

0

moi aussi eu le même problème, mais je légèrement modifié les paramètres de construction dans Eclipse à celui mentionné ci-dessous .

Eclipse export jar

Cette résolu la question de l'entrée en double pour moi, ce que des copies de tous les pots nécessaires à un sous-répertoire.

1

dans mon cas nettoyer le projet ne marche pas changer quelque chose donc j'utiliser une solution de contournement:

  1. genearte un script de compilation par l'activation par sauvegarde du script ANT ant script genration
  2. exécuter le script ant manuellement ou dans Eclipse (son mieux) executing script by eclipse

et je change mon script ant build en ajoutant l'option comme indiquer dans ce poste en double = « préserver » (pour garder la première version sur le fichier dupliquée)

espérons que cela aide

Questions connexes