2010-12-07 4 views
23

Ich versuche, ein Java-Projekt mit Eclipse 3.6.1 zu einem ausführbaren Jar zu vertreiben. Früher funktionierte das richtig, aber heute scheiterte ich, nachdem ich meinem Klassenpfad einige zusätzliche Jars hinzugefügt hatte."Doppeleintrag" Fehler beim Exportieren von Java-Projekt in JAR mit Eclipse

Der Fehler ist

duplicate entry: some/class.class 

Interessanterweise gibt einen doppelten Eintrag für fast jede Klasse in meinem buildpath ist. Obwohl ich nichts geändert habe. Die Jars, die ich hinzugefügt habe, enthalten keine doppelten Klassen.

Frage: Ist das eine Art Eclipse Bug? Betrachte ich etwas Offensichtliches? Hat jemand eine Idee, was diesen Fehler verursachen könnte?

Prost

+0

Wenn Sie das Ameisenbau-Skript erstellt haben, können Sie es veröffentlichen. –

+0

Hier ist mein Ant-Skript wie von Eclipse generiert: http://typewith.me/M6bAQ7pUCe –

Antwort

10

könnten Sie versuchen, die Linie

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

in Ihrem Build-Datei

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

Diese Ameise wird dazu führen, dass Modifizierung der erste Eintrag eines Duplikat zu erhalten und den Rest zu ignorieren. Das Standardverhalten lautet "add", sodass Sie mehrere Dateien mit demselben vollqualifizierten Namen erhalten können. Der andere gültige Eintrag für diesen Parameter ist "scheitern", aber ich denke nicht, dass Ihnen das helfen wird.


OLD-Antwort

Ihre letzte erstellt runnable jar Löschen entweder manuell oder das generierte Ant-Skript ändern, so zu tun, bevor Sie eine neue

+0

Derselbe Fehler tritt auf, wenn ich das letzte ausführbare Jar lösche. –

+1

Bitte sehen Sie die bearbeitete Antwort - nicht sicher, ob Sie eine Nachricht erhalten, wenn jemand sie bearbeitet oder nicht, aber Sie sollten eine über diesen Kommentar erhalten. –

+1

Danke! Ich habe vorher keine Ameisenskripte benutzt (nur Eclipse -> export jar), aber jetzt konnte ich nicht ohne sie leben. –

1

Reinigung des Projekts sollte helfen. Es ist kein Eclipse-Bug, sondern eher der eines Glasmachers. Offensichtlich nimmt es die Klassen und sieht, dass solche Klassen bereits existieren und nicht verstehen, dass sie diese ersetzen sollen, anstatt hinzuzufügen.

+1

Wie kann ich das Projekt in Bezug auf Buildpath/Jars reinigen? –

+0

Es gefunden ... Die Bereinigung hat keine Auswirkungen auf das Verhalten beim Generieren eines ausführbaren Jar. Irgendeine andere Idee? –

0

Reinigung Erstellen des Projekts wird Ihnen helfen.

0

Versuchen Sie, die Gläser zu entfernen und erneut das Hinzufügen .. Dies bekam den Fehler für mich gelöst ..

0

auch ich hatte das gleiche Problem, aber dann habe ich leicht modifiziert, die Build-Einstellungen in Eclipse zu dem unten genannten .

Eclipse export jar

Dies löste den doppelten Eintrag Thema für mich, es ist nur kopiert alle benötigten Gläser in ein Unterverzeichnis.

1

in meinem Fall das Projekt Reinigung tut irgend etwas ändern, so verwende ich eine Abhilfe:

  1. ein Build-Skript von ANT-Skript speichern durch Aktivierung genearte ant script genration
  2. führen Sie das Ant-Skript manuell oder in Eclipse (sein besser) executing script by eclipse

und ich meinen ant-Build-Skript ändere Option aktiviert, indem wie in diesem Beitrag nicht duplizieren = „bewahren“ (halten die erste Version auf der duplizierten Datei anzuzeigen)

hoffe es hilft

Verwandte Themen