Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jarsigner覆盖manifest.mf,创建applet权限catch-22_Java_Ant_Applet_Jar Signing - Fatal编程技术网

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

Java Jarsigner覆盖manifest.mf,创建applet权限catch-22,java,ant,applet,jar-signing,Java,Ant,Applet,Jar Signing,我尝试使用命令行jarsigner或ant signjar任务对applet进行自签名。我发现jarsigner和signjar都会覆盖maniftest.mf文件,该文件包含必要的代码库和权限条目,因此当小程序运行时,它会因为缺少这些条目而失败。我尝试在签名后添加必要的条目,但这会导致小程序无法加载,我假设这意味着这些代码库和权限条目也必须签名。使用JDK 1.7.0_40或1.6.0_51在Mac或Win上获得相同的结果 我敢肯定这是用户的错误,否则互联网上会充满疑问和抱怨。我一直在寻找这个

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


我敢肯定这是用户的错误,否则互联网上会充满疑问和抱怨。我一直在寻找这个问题,但没有找到有效的解决方案。你们中有谁遇到并解决了这似乎是第二十二条军规吗?谢谢你的帮助

回答我自己的问题,以防有人通过谷歌(Google)来到这里

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

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


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

作为旁注,
jar ufm filename.jar Manifest.mf
似乎将Manifest.mf的内容合并到jar文件中的清单中。这里的关键是
m
参数。不知道如何让ant清单任务执行此操作。