Jarsigner覆盖manifest.mf,创建applet权限catch-22

时间:2013-10-12 19:36:50

标签: java ant applet jar-signing

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

我确定这是用户错误,或者互联网会因问题和投诉而点亮。我没有找到有效的解决方案就搜索了这个问题。有没有遇到过并解决了这个看似捕获的问题?感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

回答我自己的问题,万一有类似谜题的人通过谷歌来到这里。

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

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

我希望将来帮助某人!