Wat is het JNLP-bestandsformaat?
Bestanden met de extensie .jnlp bevatten gegevens die zijn opgeslagen met behulp van XML-syntaxis. Dergelijke gegevens beschrijven een Java-applicatie of applet waarvan de broncode op een externe server staat, bedoeld om lokaal te worden gestart volgens het Java Network Launch Protocol - oorspronkelijk geïmplementeerd door Java Web Start.
Een .jnlp-bestand bevat doorgaans:
- Informatie over de applicatie - titel, leverancier, beschrijving en homepage,
- Bronnen - de URL (
codebase-attribuut) waar de JAR-archief pakketten worden gehost, - Beveiligingsinstellingen - machtigingen waarmee de applicatie bepaalde acties kan uitvoeren,
- Doelelement - de hoofdklasse en parameters van de applicatie of web-applet.
Een .jnlp-bestand kan ook veel verschillende details bevatten over JRE-versievereisten, pictogrammen, snelkoppelingsvoorkeuren en updatebeleid. De volledige specificatie is gedefinieerd door JSR-56 (Sun Microsystems / Oracle) en de attributen van het <jnlp>-rootelement verwijzen terug naar de serverlocatie van de applicatie. Java Web Start - de originele javaws-launcher die werd meegeleverd met JRE 1.4 tot en met Java 8 - werd verouderd verklaard in Java 9 (2017) en volledig verwijderd in Java 11 (2018). Moderne alternatieven zijn OpenWebStart (een platformonafhankelijke open-source vervanger) en IcedTea-Web op Linux. De inhoud van een .jnlp-bestand kan worden bekeken en bewerkt met elke tekstverwerker.
Beveiliging & veiligheid
RISICO: MEDIUMHet JNLP-bestand zelf is inerte XML, maar wat het start is een volledige desktop Java-applicatie, historisch gezien met <all-permissions/> - JNLP-bijlagen waren een gedocumenteerd phishing/malware-vector in de jaren 2010, juist omdat javaws externe code ophaalde en uitvoerde. Tegenwoordig is het aanvalsoppervlak klein (moderne Java kan ze helemaal niet uitvoeren), maar iedereen met OpenWebStart of verouderde Java 8 geïnstalleerd mag JNLP-bestanden alleen openen van servers die ze vertrouwen, en moet eerst de codebase-URL in een tekstverwerker controleren. Onverwachte .jnlp e-mailbijlagen moeten worden verwijderd.
Formaatdetails
in een notendopProgramma's die JNLP-bestanden openen
Technische details
diepe specificaties| Formaattype | XML applicatie-startbeschrijving (platte tekst) |
| Root XML-element | `<jnlp>` met vereist `codebase`-attribuut en optioneel `href`-attribuut |
| MIME-type | `application/x-java-jnlp-file` |
| Karaktercodering | UTF-8 (standaard XML; gedeclareerd in de `<?xml?>` verwerkingsinstructie) |
| Binaire handtekening | Geen - platte tekst XML; bestanden beginnen met `<?xml` gevolgd door een `<jnlp>` rootelement |
| Oorspronkelijke ontwikkelaar | Sun Microsystems (later Oracle); gestandaardiseerd als JSR-56 |
| Verouderde launcher | `javaws` (Java Web Start), meegeleverd met JRE 1.4 tot en met Java 8 |
| Huidige launchers | OpenWebStart (platformonafhankelijk, open-source); IcedTea-Web (Linux) |
| Levenscyclusstatus | Java Web Start verouderd in Java 9 (2017); verwijderd in Java 11 (2018) |
| JAR-referentie-element | `<jar href="..."/>` binnen het `<resources>` blok koppelt de `.jar`-pakketten van de applicatie |
| Beveiligingsbeschrijving | `<security><all-permissions/></security>` verleent volledige toegang; afwezigheid betekent sandbox |
| JRE-versie targeting | `<java version="..."/>` of `<j2se version="..."/>` element specificeert minimale runtime |
| Ondersteuning voor offline starten | `<offline-allowed/>` element staat starten toe zonder netwerk na initiële JAR-caching |
| Ondersteunde applicatietypen | Standaard Java-applicaties, applets en installatie-extensies (geneste `<extension>` JNLP) |
| JAR-caching | Launcher downloadt en cachet JAR's lokaal; `version`-attribuut op `<jar>` maakt delta-updates mogelijk |
| Uitgebracht | 2001 (Java Web Start, J2SE 1.3.1/1.4 era; standardized as JSR-56) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | jcp.org |
JNLP conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over JNLP-bestanden.