Ошибка "повторной записи" при экспорте Java-проекта в JAR с помощью Eclipse
Я пытаюсь превзойти проект Java с Eclipse 3.6.1 в исполняемый Jar. Это использовалось для правильной работы, но не выполнено сегодня, и я добавил некоторые дополнительные Jars в мой путь к классу.
Ошибка
duplicate entry: some/class.class
Интересно, что в моем пути сборки есть дубликат для почти любого класса. Хотя я ничего не изменил. Добавленные Jars не содержат повторяющихся классов.
Вопрос: Это какая-то ошибка Eclipse? Я что-то очевидное? Кто-нибудь знает, что может вызвать эту ошибку?
Приветствия
Ответы
Ответ 1
Вы можете попробовать изменить строку
<jar destfile="/Volumes/resi/talosBase.jar" filesetmanifest="mergewithoutmain">
в файле сборки
<jar destfile="/Volumes/resi/talosBase.jar" filesetmanifest="mergewithoutmain" duplicate="preserve">
Это приведет к тому, что ant сохранит первую запись любого дубликата и игнорирует остальные. По умолчанию используется "add", поэтому вы можете получить несколько файлов с одним и тем же полным именем. Другая действительная запись для этого параметра - "сбой", но я не думаю, что это поможет вам здесь.
OLD-ответ
Удалите последнюю созданную исполняемую банку вручную или измените сгенерированный ant script, чтобы сделать это до создания новой
Ответ 2
Очистка проекта должна помочь. Это не ошибка затмения, а скорее создатель банки. По-видимому, он принимает классы и видит, что такие классы уже существуют и не могут понять, что он должен заменить их вместо добавления.
Ответ 3
В моем случае очистка проекта ничего не меняет, поэтому я использую обходной путь:
и я изменяю свой ANT build script путем добавления опции, указанной в этом сообщении duplicate = "preserve" (чтобы сохранить первую версию в дублированном файле)
надеюсь, что это поможет
Ответ 4
Очистка проекта поможет вам.
Ответ 5
Попробуйте удалить банки и добавить их еще раз.. это привело к ошибке, разрешенной для меня..
Ответ 6
У меня тоже была такая же проблема, но затем я немного изменил настройки сборки в Eclipse, как описано ниже.
![Экспортировать jclipse jar]()
Это разрешило проблему дублирования ввода для меня, она просто копирует все необходимые банки в подкаталог.