24 votes

Comment corriger "manquant Codebase, Permissions et Application-Name attribut du manifeste" dans mon application JNLP?

Avec les mises à jour récentes de Java, de nombreuses personnes rencontrent des problèmes avec leurs applications Java Web Start qui manquent d'attributs de manifeste Codebase, Permissions et Application-nom. Bien qu'il existe des ressources pour vous aider à accomplir cela, je n'ai trouvé aucune réponse complète à cette question, donc j'ai pensé qu'une session de questions-réponses serait utile. Donc, voici la question :

Mon application Java Web Start affiche les avertissements suivants dans la console :

Attribut de manifeste Permissions manquant pour : http://www.codebase.com/myApp/dist/myApp.jar
Attribut de manifeste Codebase manquant pour : http://www.codebase.com/myApp/dist/myApp.jar
Attribut de manifeste Application-Name manquant pour : http://www.codebase.com/myApp/dist/myApp.jar

Comment puis-je résoudre ce problème ?

31voto

ryvantage Points 2307

(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.

7voto

atulsm Points 462

Une autre façon pourrait être de le gérer directement dans votre script de construction.

Étape 1 : Définissez une cible à mettre à jour

Étape 2 : Appelez la cible de mise à jour et utilisez le nouveau manifeste dans le jar

4voto

2astalavista Points 7092

Si le message d'erreur ressemble à ceci :

Attribut du manifeste Application-Name manquant pour: server root/filename.jar

Vous pouvez résoudre cela de cette manière :

  1. Démarrer panneau de configuration

  2. Choisir Panneau de configuration Java

  3. Sélectionner l'onglet Sécurité

  4. Sur la liste Site d'exceptions cliquer sur le bouton Modifier la liste de sites

  5. Cliquer sur le bouton Ajouter

  6. Taper le serveur root (par exemple :https://ibank.cib.hu), et appuyez sur OK

  7. Redémarrez votre navigateur/application.

Ressource ici.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X