Qu'est-ce que le format de fichier JNLP ?
Les fichiers avec l'extension .jnlp contiennent des données stockées à l'aide de la syntaxe XML. Ces données décrivent une application ou une applet Java dont le code source réside sur un serveur distant, destinée à être lancée localement selon le Java Network Launch Protocol - initialement implémenté par Java Web Start.
Un fichier .jnlp contient généralement :
- Des informations sur l'application - titre, fournisseur, description et page d'accueil,
- Des ressources - l'URL (attribut
codebase) où les paquets d'archives JAR sont hébergés, - Des paramètres de sécurité - les autorisations qui permettent à l'application d'effectuer certaines actions,
- L'élément cible - la classe principale et les paramètres de l'application ou de l'applet web.
Un fichier .jnlp peut également contenir de nombreux détails différents sur les exigences de version du JRE, les icônes, les préférences de raccourcis et les politiques de mise à jour. La spécification complète est définie par JSR-56 (Sun Microsystems / Oracle) et les attributs de l'élément racine <jnlp> pointent vers l'emplacement du serveur de l'application. Java Web Start - le lanceur javaws original fourni avec le JRE 1.4 jusqu'à Java 8 - a été déprécié dans Java 9 (2017) et entièrement supprimé dans Java 11 (2018). Les alternatives modernes sont OpenWebStart (un remplacement open-source multiplateforme) et IcedTea-Web sur Linux. Le contenu d'un fichier .jnlp peut être visualisé et édité à l'aide de n'importe quel éditeur de texte brut.
Sécurité et sûreté
RISQUE : MEDIUMLe fichier JNLP lui-même est un XML inerte, mais ce qu'il lance est une application Java de bureau complète, historiquement avec <all-permissions/> - les pièces jointes JNLP étaient un vecteur documenté de phishing et de logiciels malveillants dans les années 2010 précisément parce que javaws récupérait et exécutait du code distant. Aujourd'hui, la surface d'attaque est réduite (le Java moderne ne peut plus les exécuter du tout), mais toute personne ayant installé OpenWebStart ou l'ancien Java 8 ne devrait ouvrir les fichiers JNLP que depuis des serveurs de confiance, et vérifier d'abord l'URL du codebase dans un éditeur de texte. Les pièces jointes JNLP inattendues reçues par e-mail doivent être supprimées.
Détails du format
en brefProgrammes qui ouvrent les fichiers JNLP
Détails techniques
spécifications approfondies| Type de format | Descripteur de lancement d'application XML (texte brut) |
| Élément racine XML | `<jnlp>` avec l'attribut `codebase` requis et l'attribut `href` facultatif |
| Type MIME | `application/x-java-jnlp-file` |
| Encodage des caractères | UTF-8 (XML standard ; déclaré dans l'instruction de traitement `<?xml?>`) |
| Signature binaire | Aucune - XML en texte brut ; les fichiers commencent par `<?xml` suivi d'un élément racine `<jnlp>` |
| Développeur original | Sun Microsystems (plus tard Oracle) ; standardisé sous le nom JSR-56 |
| Lanceur hérité | `javaws` (Java Web Start), fourni avec le JRE 1.4 jusqu'à Java 8 |
| Lanceurs actuels | OpenWebStart (multiplateforme, open-source) ; IcedTea-Web (Linux) |
| Statut du cycle de vie | Java Web Start déprécié dans Java 9 (2017) ; supprimé dans Java 11 (2018) |
| Élément de référence JAR | `<jar href="..."/>` à l'intérieur du bloc `<resources>` lie les paquets `.jar` de l'application |
| Descripteur de sécurité | `<security><all-permissions/></security>` accorde un accès complet ; l'absence signifie un mode bac à sable (sandboxed) |
| Ciblage de version JRE | L'élément `<java version="..."/>` ou `<j2se version="..."/>` spécifie l'environnement d'exécution minimal |
| Prise en charge du lancement hors ligne | L'élément `<offline-allowed/>` permet le lancement sans réseau après la mise en cache initiale des JAR |
| Types d'applications pris en charge | Applications Java standard, applets et extensions d'installation (JNLP `<extension>` imbriqué) |
| Mise en cache des JAR | Le lanceur télécharge et met en cache les JAR localement ; l'attribut `version` sur `<jar>` permet les mises à jour delta |
| Publié | 2001 (Java Web Start, J2SE 1.3.1/1.4 era; standardized as JSR-56) |
| Standard ouvert | Oui · libre de droits |
| Spécification | jcp.org |
Conversions JNLP
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers JNLP.