7

我收到错误消息:

[signjar] jarsigner:尝试将 C:\workspace\line_editor\lib\icon.jar 重命名为 C:\workspace\line_editor\lib\icon.jar.orig 失败

当尝试在 Eclipse 中使用 ant 对一组 jar 进行自签名时。ant 构建在这个项目中运行良好,在其他项目中也有类似的代码。我对代码做了一些小改动,并尝试重建并不断收到此错误。

这是相关的蚂蚁目标:

<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 文件也失败了。没有正在运行的程序正在访问此文件夹中的 .jar。

关于原因有什么建议吗?

4

3 回答 3

10

一种可能性是 jar(位于“lib”目录中)在构建期间使用的类路径中。是否${lib.dir}包含在构建文件中使用的类路径中?

您可以创建一个单独的目录来存放签名的 jar,并使用destdir属性将其指定给“signjar”任务。

于 2011-01-17T15:58:14.990 回答
2

我有同样的问题。尝试自己重命名 jar 文件。如果不能重命名,通常可以找出哪个应用程序有文件锁。很可能是java的一些实例。退出所有基于 Java 的应用程序,然后重试。(使用任务管理器确保您的 java/javaw 没有运行。)之后,它应该可以工作了。

于 2013-11-15T05:00:28.300 回答
1

它在为项目选择的JREjarsigner.exe的主目录中查找。如果 JRE 只是一个 JRE(不是 JDK),则该程序将不存在。

尝试设置特定于项目的 JRE 并确保它实际上是 JDK。

于 2011-01-17T14:34:28.710 回答