it-swarm.com.ru

ошибка "повторяющаяся запись" при экспорте проекта Java в JAR с Eclipse

Я пытаюсь экспортировать проект Java с Eclipse 3.6.1 в работающий Jar. Раньше это работало правильно, но сегодня не получалось, после того как я добавил несколько JAR-файлов в свой путь к классу.

Ошибка

duplicate entry: some/class.class

Интересно, что в моем buildpath есть дублирующая запись практически для любого класса. Хотя я ничего не изменил. Добавленные мною банки не содержат повторяющихся классов.

Вопрос: это какая-то ошибка в Eclipse? Я вижу что-то очевидное? У кого-нибудь есть идея, что может вызвать эту ошибку?

Ура

25
Martin Preusse

Вы можете попробовать изменить строку 

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

в вашем файле сборки, чтобы быть 

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

Это заставит муравья сохранить первую запись любого дубликата и игнорировать остальные. Поведение по умолчанию - «добавить», поэтому вы можете получить несколько файлов с одним и тем же полностью определенным именем. Другая действительная запись для этого параметра - «fail», но я не думаю, что это поможет вам здесь.


OLD-Ответ

Удалите последний созданный исполняемый файл jar вручную или измените созданный сценарий ant, прежде чем создавать новый.

11
Kevin D

в моем случае очистка проекта ничего не меняет, поэтому я использую обходной путь:

  1. генерируйте сценарий сборки путем активации путем сохранения сценария ANT создание сценария ant
  2. выполнить сценарий ant вручную или в Eclipse (лучше) выполнение сценария Eclipse

и я изменил свой скрипт сборки муравья, добавив опцию, как указано в этом сообщении duplicate = "preserve" (чтобы сохранить первую версию в дублированном файле)

надеюсь, это поможет 

1
forest forest

Очистка проекта поможет вам.

1
Gaurav Gupta

Очистка проекта должна помочь. Это не ошибка Eclipse, а скорее ошибка Jar Maker. Очевидно, что он берет классы и видит, что такие классы уже существуют, и не может понять, что он должен заменить их вместо добавления. 

1
Vladimir Ivanov

Попробуйте удалить банки и добавить их еще раз .., это исправило ошибку для меня ..

0
Aarish Ramesh

У меня тоже была такая же проблема, но затем я немного изменил настройки сборки в Eclipse, чтобы они упоминались ниже.

 Eclipse export jar

Это решило проблему с дублирующейся записью, просто скопировав все необходимые файлы в подкаталог.

0
sysuser