(1)首先,您需要创建一个包含您要添加的所有属性的文本文件。我的文本文件如下所示:
Permissions: all-permissions
Codebase: http://www.codebase.com/myApp/dist
Application-Name: My Application
我命名它addToManifest.txt
。显然,您需要更改参数以满足应用程序的需求。
(2)接下来,您需要将其添加到主 .jar 和所有库中。执行此操作的命令是:
jar ufm dist\myApp.jar addToManifest.txt
当然dist\myApp.jar
需要指出你的主要 .jar 是什么。您还需要对所有库执行此操作。
jar ufm dist\lib\jcommon-1.0.16.jar addToManifest.txt
jar ufm dist\lib\jfreechart-1.0.13.jar addToManifest.txt
jar ufm dist\lib\joda-time-2.2.jar addToManifest.txt
...
(注意:在 Windows 上,我为此编写了一个.bat
文件。)
完成此操作后,应将属性写入.jar
s. 您可以在 zip 管理器(如 7-Zip)中打开 .jar,解压缩MANIFEST.MF
文件,在文本编辑器中打开它,您应该会看到列出的属性。
(3)添加属性后,您需要为您的应用程序退出。执行此操作的命令是:
jarsigner dist\myApp.jar -keystore "C:\myApp\KEYSTORE.ks" alias -storepass password
您还需要为所有库执行此操作:
jarsigner dist\lib\jcommon-1.0.16.jar -keystore "C:\myApp\KEYSTORE.ks" alias -storepass password
jarsigner dist\lib\jfreechart-1.0.13.jar -keystore "C:\myApp\KEYSTORE.ks" alias -storepass password
jarsigner dist\lib\joda-time-2.2.jar -keystore "C:\myApp\KEYSTORE.ks" alias -storepass password
之后,你的属性应该被添加并且你.jar
的 s 应该被签名!
注意:除非您更改库结构,否则您只需签署/部署您的库一次。即,如果您正在更新您的应用程序,但库已经更改、正确签名和部署了它们的清单,则除非您从应用程序中添加/删除库,否则您不需要重新签名/部署库。
注意 #2:当前版本的 Netbeans 只会将属性添加Codebase
到Permissions
您的主 .jar中,但不会添加到您的库中。jar
如果您使用 Netbeans,当您尝试添加重复的清单属性时,您将收到来自实用程序的警告。队列中有一个错误报告以修复此问题https://netbeans.org/bugzilla/show_bug.cgi?id=234231。
编辑:最新版本的 Netbeans (8.0) 现在为您将所有三个(Codebase
、、Permissions
和Application-Name
)添加到清单中。