Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the cause for the failure: "jarsigner: attempt to rename {file} to {file}.org failed" when signing jars with ant?

I am getting the error:

[signjar] jarsigner: attempt to rename C:\workspace\line_editor\lib\icon.jar to C:\workspace\line_editor\lib\icon.jar.orig failed

when attempting to self sign a set of jars with ant inside Eclipse. The ant build has worked fine in this project and similar code in other projects. I made some small changes to code and tried to rebuild and keep getting this error.

Here is the related ant target:

<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>

I deleted the project and pulled it down again from our repository. So it has the same default project settings as other projects that this part does not fail. I looked at the .jar in question and it was not read-only. I changed the name and the next alphabetical .jar file also failed. There is no program running that is accessing the .jars in this folder.

Any suggestions as to cause?

like image 435
jzd Avatar asked Jan 17 '11 14:01

jzd


2 Answers

One possibility is that the jar - which is in a 'lib' directory - is on a classpath in use during your build. Is ${lib.dir} included on a classpath used in the buildfile?

You could create a separate directory to deposit signed jars to, and specify that to the 'signjar' task using the destdir attribute.

like image 54
martin clayton Avatar answered Nov 08 '22 02:11

martin clayton


I had the same problem. Try renaming the jar file yourself. If it can't be renamed, you can usually figure out which application has a file lock on it. Most likely some instance of java. Quit all java-based apps and try again. (Use task manager to make sure your java/javaw are not running.) After that, it should work.

like image 2
bhlowe Avatar answered Nov 08 '22 02:11

bhlowe