Jarsigner清单权限

6

当你签署一个jar文件时,如何添加额外的参数到manifest文件中?我有一个使用一些外部库的javaws应用程序。从java7u25开始,需要在清单中设置额外的参数(权限和代码库)。如何在签名时设置这些参数(如果可能的话使用maven)?我可以在构建时为我生产的工件设置它们,但对于我从外部存储库获取的工件,我如何在签名时插入它们?


我通过实现一个自定义的Maven插件来解决这个问题,除了从仓库获取JAR包之外,还会注入所需的清单条目。 - Sorin Dabiste
3个回答

3

重要观察:

注意:清单的内容必须以UTF8进行编码。

我因此浪费了很多时间。希望这能帮助到某些人。


有效的ASCII也是有效的UTF8,因此通常这不应该是一个问题;您能详细说明一下您需要做什么才能使它工作吗? - Harry Johnston
我刚刚用Windows记事本打开了Manifest.mf,一切都没问题。 - Saeger

3

在签名之前,我会更新第三方jar包。

更新jar包的ant任务是:

jar ufm thirdparty.jar manifest_adder.mf

  • u: 更新

  • f: 输出到文件

  • m: 附加清单文件。

manifest_adder.mf文件将与第三方jar包中现有的清单合并。


我选择了你的回答,即使我使用了一种(从技术上讲)不同的方法(但是主要思路相同),因为没有比这个额外步骤更好的方式来完成它(在签名之前/之后)。 - Sorin Dabiste

2
不知道maven,但我最近研究了关于在构建时使用ANT将相同属性(您提到的那些)附加到第三方jar的主题。Java中的过程是创建另一个Manifest文件(包含新属性),并将其附加到jar的Manifest中。您可以在此处检查命令here。我正在构建时创建我的jar,所以我有两个选择:
第一种方法: 1)解压缩jar 2)修改清单 3)再次创建Jar 但这很麻烦,所以我使用ANT的exec()task运行合并两个清单的命令。
希望这能解决您的问题。谢谢

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接