【问题标题】:Jarsigner overwrites manifest.mf, creating applet permissions catch-22Jarsigner 覆盖 manifest.mf,创建小程序权限 catch-22
【发布时间】:2013-10-12 19:36:50
【问题描述】:

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

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

【问题讨论】:

    标签: java ant applet jar-signing


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 附带说明,jar ufm filename.jar Manifest.mf 似乎将 Manifest.mf 的内容合并到 jar 文件中的 Manifest 中。这里的关键是m 参数。不知道如何让 ant manifest 任务执行此操作。
    猜你喜欢
    • 1970-01-01
    • 2019-10-21
    • 2021-02-01
    • 1970-01-01
    • 2018-03-04
    • 2013-06-24
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    相关资源
    最近更新 更多