我在使用jarsigner签署我的jar文件时遇到问题。我使用this教程来签署我的jar文件,但是最后一步(签署jar),我收到了这个错误:
jarsigner错误:java.lang.RuntimeException:keystore load:无效的密钥库格式
我没有使用步骤#10,而是使用了来自this网站的第5步,因为我使用的是真正的证书而不是假证书......
注意:
我在.spc
& .pvk
格式......
但是,由于我使用的是jarsigner,我必须将它们转换为.p12
格式。因此,我先使用.pfx
将其转换为pvkimprt.exe
,然后转换为.p12
。我使用了之前在之前提到的链接中指定的方法。
此外,我尝试创建一个假证书,以确保问题不是来自pvkimprt.exe
工具或来自证书。它给了我同样的错误。
证书很好。那么,问题出在哪里?
答案 0 :(得分:3)
您遇到的错误表明jarsigner不了解包含密钥的密钥库的格式。
如果您转换了密钥&将证书转换为PKCS#12文件,您必须使用-storetype PKCS12
命令行选项指定使用的密钥库的类型,并使用-storepass mystorepassword
(实际上大部分时间.pfx和.p12用于相同的文件格式,因此我不确定教程中的firefox导入/导出步骤是否强制执行)
答案 1 :(得分:2)
不是答案,只是评论 - 我发现大写是至关重要的 - " pkcs12"没有工作,但" PKCS12"用Jcs的回答做了。
答案 2 :(得分:1)
这就是我所做的并且有效:
<ant:signjar alias="le-f0b73c88-1f82-4497-8c3f-e10d399b4c9c" storetype="pkcs12"
storepass="fount-current"
keystore="/vobs/oam_base/loadbuild_tools/common/src/conf/kunal.pfx">
存储传递应该是小写,这是工作顺序或参数,有时错误顺序抛出运行时填充异常。
[signjar] jarsigner错误:java.lang.RuntimeException:keystore load: