2

我正在尝试使用命令行 jarsigner 或 ant signjar 任务对小程序进行自签名。我发现 jarsigner 和 signjar 都覆盖了包含必要的 Codebase 和 Permissions 条目的 maniftest.mf 文件,因此当小程序运行时,由于缺少这些条目而失败。我已经尝试在签名后添加必要的条目,但这会导致小程序无法加载,我认为这意味着这些 Codebase 和 Permissions 条目也必须被签名。在 Mac 或 Win 上使用 JDK 1.7.0_40 或 1.6.0_51 的结果相同。

我确定这是用户错误,否则互联网会充满问题和投诉。我已经搜索了这个问题,但没有找到可行的解决方案。你们中有人遇到并解决了这个看似catch-22的问题吗?感谢你的帮助!

4

1 回答 1

1

回答我自己的问题,以防有类似困惑的人通过谷歌到达这里。

我一直在使用 ant manifest 任务来动态创建我的 manifest.mf 文件。也就是说,没有名为“manifest.mf”的物理文件系统文件。此任务将 manifest.mf 文件添加到由 ant 打包的 JAR 中没有问题,但不知何故,我不知道为什么,以这种方式创建的清单与 jarsigner 工具(包括 ant signjar 任务)之间存在不愉快的交互。如果我在文件系统上创建一个物理 manifest.mf 文件,让 jar 任务将该文件包含在 .jar 中,然后通过 signjar 签名,一切都很好。

我不知道这是否应该被视为清单任务中的错误,或者我是否只是做错了。我知道手动滚动我自己的 manifest.mf 文件可以正常工作。

我希望这对将来的人有所帮助!

于 2013-10-21T04:09:40.870 回答