(1) 首先,您需要创建一个具有所有要添加属性的文本文件。我的文本文件如下所示:
Permissions: all-permissionsCodebase: http://www.prebase.com/myApp/distApplication-Name: My Application
我命名了
addToManifest.txt。显然,您需要更改参数以满足您的应用程序需求。
(2) 接下来,您需要将此添加到主.jar以及所有库中。为此的命令是:
jar ufm distmyApp.jar addToManifest.txt
当然
distmyApp.jar,您需要指向您的主要.jar文件。您还需要对所有库都执行此操作。
jar ufm distlibjcommon-1.0.16.jar addToManifest.txtjar ufm distlibjfreechart-1.0.13.jar addToManifest.txtjar ufm distlibjoda-time-2.2.jar addToManifest.txt...
(注意:在Windows上,我为此编写了一个
.bat文件。)
完成此操作后,应将属性写入
.jars。您可以在zip管理器(如7-Zip)中打开.jars,解压缩
MANIFEST.MF文件,然后在文本编辑器中打开它,然后应该看到列出的属性。
(3) 添加属性后,您需要退出应用程序。执行此操作的命令是:
jarsigner distmyApp.jar -keystore "C:myAppKEYSTORE.ks" alias -storepass password
您还需要对所有库都执行此操作:
jarsigner distlibjcommon-1.0.16.jar -keystore "C:myAppKEYSTORE.ks" alias -storepass passwordjarsigner distlibjfreechart-1.0.13.jar -keystore "C:myAppKEYSTORE.ks" alias -storepass passwordjarsigner distlibjoda-time-2.2.jar -keystore "C:myAppKEYSTORE.ks" alias -storepass password
之后,应添加您的属性,并应对您
.jar的签名!
注意:除非更改库结构,否则只需签名/部署库一次。即,如果您要更新应用程序,但是库的清单已被更改,正确签名和部署,则除非您要从应用程序中添加/删除库,否则无需辞职/部署库。
注意#2:当前版本的Netbeans 仅* 向 主.jar
添加属性Codebase
和Permissions
清单属性,而不向库添加属性。如果您使用Netbeans,则当您尝试添加重复的清单属性时,将从实用程序收到警告。队列中有一个错误报告,具有此固定的https://netbeans.org/bugzilla/show_bug.cgi?id=234231。
*jar
编辑:Netbeans的(8.0)的最新版本现在增加了三个(
Codebase,
Permissions,和
Application-Name)的清单给你。



