尝试加载使用pack200压缩的jar时遇到问题。我发现使用unpack200
后无法验证我的jar文件的错误。
以下是该方案:
keytool -keystore key -genkey -alias hj
jarsigner -keystore key HelloJApplet.jar hj
pack200 HelloJApplet.jar.pack.gz HelloJApplet
unpack200 HelloJApplet.jar.pack.gz HelloJAppletUnpack.jar
jarsigner -verify HelloJApplet.jar
和jarsigner -verify HelloJAppletUnpack.jar
对于显示HelloJApplet.jar
的{{1}}和jar verified.
显示错误HelloJAppletUnpack.jar
到目前为止我做的事情有什么问题? 请纠正我错过或错误的地方。
答案 0 :(得分:4)
要签署pack200 jar,您需要打包+解包(即重新包装),签名并再次打包。请参阅http://wiki.eclipse.org/Pack200#Compression_and_Signing或http://www.java.net/node/679859
pack200 --repack b.jar a.jar
sign b.jar
(p.s。5.0中有一个错误并在5.0u1中修复。如果需要,可以升级)
答案 1 :(得分:1)
不是WINDOWS 的情况。我刚刚确认了pack200的一个错误。
在Windows上,您必须运行pack200.exe --repack
命令两次。例如:
pack200.exe --repack A.jar
pack200.exe --repack B.jar A.jar
sign B.jar
pack200.exe B.pack.gz B.jar
此外,第二次重新包装必须有2个参数。以下序列将 FAIL :
pack200.exe --repack A.jar
pack200.exe --repack A.jar
>Skipping because already repacked: A.jar
sign A.jar
pack200.exe A.pack.gz A.jar
PACKED JAR IS STILL BAD