使用unpack200后验证错误

时间:2012-07-02 10:30:36

标签: java compression japplet jarsigner

尝试加载使用pack200压缩的jar时遇到问题。我发现使用unpack200后无法验证我的jar文件的错误。

以下是该方案:

  1. 创建密钥库keytool -keystore key -genkey -alias hj
  2. 签署jar jarsigner -keystore key HelloJApplet.jar hj
  3. 压缩该jar文件:pack200 HelloJApplet.jar.pack.gz HelloJApplet
  4. 解压缩并重命名:unpack200 HelloJApplet.jar.pack.gz HelloJAppletUnpack.jar
  5. 验证广告:jarsigner -verify HelloJApplet.jarjarsigner -verify HelloJAppletUnpack.jar
  6. 对于显示HelloJApplet.jar的{​​{1}}和jar verified.显示错误HelloJAppletUnpack.jar

    到目前为止我做的事情有什么问题? 请纠正我错过或错误的地方。

2 个答案:

答案 0 :(得分:4)

要签署pack200 jar,您需要打包+解包(即重新包装),签名并再次打包。请参阅http://wiki.eclipse.org/Pack200#Compression_and_Signinghttp://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