我收到错误:
[signjar] jarsigner:尝试重命名 C:\工作空间\ line_editor \ lib中\ icon.jar 至 C:\工作空间\ line_editor \ lib中\ icon.jar.orig 失败
尝试在Eclipse中使用ant自签一组罐子时。 ant build在这个项目中运行良好,在其他项目中也有类似的代码。我对代码进行了一些小的更改,并尝试重建并不断收到此错误。
以下是相关的蚂蚁目标:
<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。
有任何关于原因的建议吗?
答案 0 :(得分:9)
一种可能性是jar(位于'lib'目录中)在构建期间使用的类路径中。 ${lib.dir}
是否包含在构建文件中使用的类路径中?
您可以创建一个单独的目录来存放签名的jar,并使用destdir属性指定“signjar”任务。
答案 1 :(得分:2)
我遇到了同样的问题。尝试自己重命名jar文件。如果无法重命名,通常可以确定哪个应用程序有文件锁定。最有可能是java的一些实例。退出所有基于java的应用程序,然后重试。 (使用任务管理器确保你的java / javaw没有运行。)之后,它应该可以工作。
答案 2 :(得分:0)
它在为项目选择的 JRE 的主目录中查找jarsigner.exe
。如果JRE只是一个JRE(而不是JDK),那么该程序将不存在。
尝试设置特定于项目的JRE,并确保它实际上是JDK。