使用signtool对JAR进行签名

使用signtool对JAR进行签名,jar,solaris,jar-signing,manifest.mf,signtool,Jar,Solaris,Jar Signing,Manifest.mf,Signtool,我正在尝试在solaris上使用signtool对第三方JAR进行签名。jar已经有一个manifest.mf文件,但是signtool在META-INF/目录中创建了一个新的manifest.mf文件,并使用该文件对jar进行签名。如果我尝试验证已签名的jar,它将失败,因为清单文件有两个不同的版本。如果将当前manifest.mf文件中的内容复制到MANIFESET.mf,signtool将覆盖数据 是否仍然需要指定用于对jar进行签名的文件(例如manifest.mf超过manifest.

我正在尝试在solaris上使用signtool对第三方JAR进行签名。jar已经有一个manifest.mf文件,但是signtool在META-INF/目录中创建了一个新的manifest.mf文件,并使用该文件对jar进行签名。如果我尝试验证已签名的jar,它将失败,因为清单文件有两个不同的版本。如果将当前manifest.mf文件中的内容复制到MANIFESET.mf,signtool将覆盖数据

是否仍然需要指定用于对jar进行签名的文件(例如manifest.mf超过manifest.mf)?或者有没有办法告诉signtool在新MANIFEST.MF中包含什么


这是一个紧迫的问题,因为java的下一次更新要求对JAR进行签名,并包括小程序的权限标记

我只涉猎了一个我必须维护的小程序,而不是我自己,我发现关于这个主题的信息很少。我在signtool参数“-m”(元文件)的神秘文档中找到了一些东西。从中,我猜测“+如果您想指定全局元数据(即,关于JAR归档本身或归档中所有条目的元数据)”可能是对META-INF/MANIFEST.MF的神秘引用,而且似乎是这样

使用带有build.xml的anthill,并且不知道更好的约定,我创建了一个“src\antBuild\signtool extras.mf”,并在signtool调用中使用“-m{basedir}\src\antBuild\signtool extras.mf”。我在“signtool extras.mf”中以“+”开头的内容被扩展到signtool生成的MANIFEST.mf中

在我的例子中,我添加了两行“+权限:所有权限”和一行标识“+应用程序名:Cris Mooney FTP小程序”。它们显示在生成的jar文件的META-INF/MANIFEST.MF中,这满足了当前Java 1.7.055引擎的要求。另外,与我在别处读到的相反,Java目前并没有抱怨没有“代码库”,我对此知之甚少,但选择忽略它,因为我希望我的工具会在QA中抱怨,这已经足够让我感到一种没有记录的痛苦

希望这对某人有所帮助,我希望在相对黑暗的环境中听到对我猜测的澄清和更正

注意-我的解决方案是解决以下两个Java 1.7.055投诉:

缺少URL/FTPApplet.jar的权限清单属性

缺少URL/FTPpplet.jar的应用程序名称清单属性