这是场景:我们创建了一个 JAVA 小程序,除了我们自己的代码之外,它还包括来自几个未打包的 3rd 方 JAR:s 的类。我们签署了小程序,它在客户端上运行良好。我们现在正试图使小程序更小,因为我们的许多客户都在带宽很差的网络上。所以pack200包装就是我在看的东西。
问题:
我们用 pack200 打包的步骤基本上是
- 重新打包(使用 pack200 util)我们的小程序 JAR 以规范化
- 使用我们的证书退出我们的 applet JAR
- 使用 pack200 util 打包小程序 JAR
很简单,在此过程中没有收到任何错误。但是,在客户端上,当他们收到这个新打包的小程序时,他们会在第 3 方 JAR 中包含的类上收到 SHA1 摘要错误。
第 3 方 JAR 没有与我们自己的 JAR 捆绑在一起,它被解包并且类被复制到 applet 中,即单个 JAR。
这个过程适用于另一个小程序,其中包括来自外部 JAR:s 的类,所以我认为我的过程是正确的。我怀疑这与已经签署的第 3 方 JAR 有关,但由于我们可以签署我们的小程序并首先运行它,所以我并不真正理解它。
有什么我错过的吗?我承认我到目前为止还不是签名方面的专家,所以可能有一些明显的事情会阻止事情按我的意愿工作。