我正在尝试使用命令行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上获得相同的结果。
我确定这是用户错误,或者互联网会因问题和投诉而点亮。我没有找到有效的解决方案就搜索了这个问题。有没有遇到过并解决了这个看似捕获的问题?感谢您的帮助!
答案 0 :(得分:1)
回答我自己的问题,万一有类似谜题的人通过谷歌来到这里。
我一直在使用ant manifest任务动态创建manifest.mf文件。也就是说,没有名为“manifest.mf”的物理文件系统文件。这个任务将一个manifest.mf文件添加到由ant打包的JAR中没有问题,但不知何故,我不知道为什么,这种方式创建的清单与jarsigner工具之间存在不愉快的交互,包括ant signjar任务。如果我在文件系统上创建一个物理manifest.mf文件,让jar任务在.jar中包含该文件,然后通过signjar签名,一切都很好。
我不知道这是否应该被视为清单任务中的错误,或者我是否只是做错了。我知道手动滚动我自己的manifest.mf文件是正常的。
我希望将来帮助某人!