(1) Tout d'abord, vous devez créer un fichier texte avec tous les attributs que vous voulez ajouter. Mon fichier texte ressemble à ceci:
Permissions: all-permissions
Codebase: http://www.codebase.com/myApp/dist
Application-Name: My Application
Je l'ai nommé addToManifest.txt
. Évidemment, vous devrez changer les paramètres pour correspondre aux besoins de votre application.
(2) Ensuite, vous devez ajouter ceci au .jar principal et à toutes les bibliothèques également. La commande pour cela est :
jar ufm dist\myApp.jar addToManifest.txt
bien sûr dist\myApp.jar
devra pointer vers le nom de votre .jar principal. Vous devrez également faire cela pour toutes les bibliothèques également.
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
...
(Remarque: sur Windows, j'ai écrit un fichier .bat
pour cela.)
Une fois que vous avez fait cela, les attributs devraient être écrits dans les .jar. Vous pouvez ouvrir les .jars dans un gestionnaire d'archive (comme 7-Zip), extraire le fichier MANIFEST.MF
, l'ouvrir dans un éditeur de texte, et vous devriez voir les attributs répertoriés.
(3) Après avoir ajouté les attributs, vous devez resigner votre application. La commande pour cela est :
jarsigner dist\myApp.jar -keystore "C:\myApp\KEYSTORE.ks" alias -storepass password
Vous devrez également faire cela pour toutes vos bibliothèques également :
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
Après cela, vos attributs devraient être ajoutés et vos .jar devraient être signés !
NOTE : Vous n'avez besoin de signer/déployer vos bibliothèques qu'une fois, sauf si vous modifiez la structure de la bibliothèque. c'est-à-dire, si vous mettez à jour votre application mais que les bibliothèques ont déjà eu leurs manifestes modifiés, signés correctement, et déployés, vous n'aurez pas besoin de resigner/déployer les bibliothèques à moins que vous ajoutiez ou supprimiez des bibliothèques de votre application.
NOTE #2: La version actuelle de Netbeans ajoutera les attributs du manifeste Codebase
et Permissions
uniquement à votre .jar principal uniquement, mais pas à vos bibliothèques. Si vous utilisez Netbeans, vous recevrez un avertissement de l'utilitaire jar
lorsque vous essayez d'ajouter un attribut de manifeste en double. Il y a un rapport de bogue en attente pour que ce problème soit corrigé https://netbeans.org/bugzilla/show_bug.cgi?id=234231.
MODIFICATION : La dernière version de Netbeans (8.0) ajoute maintenant tous les trois (Codebase
, Permissions
et Application-Name
) au manifeste pour vous.