В чем причина ошибки: «jarsigner: попытка переименовать {file} в {file} .org не удалась» при подписании jars с помощью ant? - PullRequest
6 голосов
/ 17 января 2011

Я получаю сообщение об ошибке:

[signjar] jarsigner: попытка переименовать C: \ workspace \ line_editor \ lib \ icon.jar в C: \ workspace \ line_editor \ lib \ icon.Ошибка jar.orig

при попытке самостоятельно подписать набор банок с муравьем внутри Eclipse.Сборка муравья хорошо работала в этом проекте и аналогичном коде в других проектах.Я внес небольшие изменения в код и попытался перестроить и продолжать получать эту ошибку.

Вот соответствующая цель муравья:

<target name="sign" depends="jar" description="Signs Jars">

        <genkey keystore="myKeystore1" alias="something" storepass="somethingpass" 
          dname="CN=Classification, OU=NAPA, O=GPC, C=US"/> 


        <signjar keystore="myKeystore1" alias="something" storepass="somethingpass">
            <fileset file="${web.dir}/${jar.name}" />
            <fileset dir="${lib.dir}">
                <include name="*.jar"/>
            </fileset>  
        </signjar>
    </target>

Я удалил проект и снова вытащил его из нашегорепозиторий.Таким образом, он имеет те же настройки проекта по умолчанию, что и другие проекты, поэтому эта часть не провалится.Я посмотрел на .jar, о котором идет речь, и он был не только для чтения.Я изменил имя, и следующий алфавитный файл .jar также не удалось.В этой папке не запущена программа, которая обращается к .jars.

Есть какие-нибудь предложения, как вызвать?

Ответы [ 3 ]

9 голосов
/ 17 января 2011

Одна из возможностей заключается в том, что jar - который находится в каталоге 'lib' - находится на пути к классам, используемом во время вашей сборки. ${lib.dir} включен в путь к классам, используемый в файле сборки?

Вы можете создать отдельный каталог для размещения подписанных jar-файлов и указать это для задачи 'signjar', используя атрибут destdir .

2 голосов
/ 15 ноября 2013

У меня была такая же проблема.Попробуйте переименовать файл JAR самостоятельно.Если его нельзя переименовать, вы обычно можете определить, какое приложение имеет блокировку файла.Скорее всего какой-то экземпляр Java.Закройте все Java-приложения и попробуйте снова.(Используйте диспетчер задач, чтобы убедиться, что ваш java / javaw не запущен.) После этого он должен работать.

0 голосов
/ 17 января 2011

Он ищет jarsigner.exe в домашнем каталоге JRE , выбранном для проекта.Если JRE является просто JRE (не JDK), эта программа не будет присутствовать.

Попробуйте установить JRE для конкретного проекта и убедитесь, что это действительно JDK.

...