Che cos'è il formato di file JNLP?
I file con estensione .jnlp contengono dati memorizzati utilizzando la sintassi XML. Tali dati descrivono un'applicazione o un applet Java il cui codice sorgente risiede su un server remoto, destinato a essere lanciato localmente secondo il Java Network Launch Protocol - originariamente implementato da Java Web Start.
Un file .jnlp contiene tipicamente:
- Informazioni sull'applicazione - titolo, fornitore, descrizione e homepage,
- Risorse - l'URL (attributo
codebase) dove sono ospitati i pacchetti archivio JAR, - Impostazioni di sicurezza - permessi che consentono all'applicazione di eseguire determinate azioni,
- Elemento di destinazione - la classe principale e i parametri dell'applicazione o dell'applet web.
Un file .jnlp può anche contenere molti dettagli diversi sui requisiti della versione JRE, icone, preferenze per le scorciatoie e politiche di aggiornamento. La specifica completa è definita da JSR-56 (Sun Microsystems / Oracle) e gli attributi dell'elemento radice <jnlp> rimandano alla posizione del server dell'applicazione. Java Web Start - l'originale launcher javaws incluso in JRE da 1.4 a Java 8 - è stato deprecato in Java 9 (2017) e rimosso completamente in Java 11 (2018). Le alternative moderne sono OpenWebStart (un sostituto open-source multipiattaforma) e IcedTea-Web su Linux. Il contenuto di un file .jnlp può essere visualizzato e modificato utilizzando qualsiasi editor di testo semplice.
Sicurezza e incolumità
RISCHIO: MEDIUMIl file JNLP in sé è XML inerte, ma ciò che avvia è un'applicazione Java desktop completa, storicamente con <all-permissions/> - gli allegati JNLP sono stati un vettore documentato di phishing/malware negli anni 2010 proprio perché javaws scaricava ed eseguiva codice remoto. Oggi la superficie di attacco è ridotta (le versioni moderne di Java non possono eseguirli affatto), ma chiunque abbia installato OpenWebStart o il legacy Java 8 dovrebbe aprire solo file JNLP da server fidati e controllare prima l'URL codebase in un editor di testo. Gli allegati e-mail .jnlp inaspettati dovrebbero essere eliminati.
Dettagli del formato
in sintesiProgrammi che aprono file JNLP
Dettagli tecnici
specifiche approfondite| Tipo di formato | Descrittore di avvio applicazione XML (testo semplice) |
| Elemento XML radice | `<jnlp>` con attributo `codebase` richiesto e attributo `href` opzionale |
| Tipo MIME | `application/x-java-jnlp-file` |
| Codifica caratteri | UTF-8 (XML standard; dichiarato nell'istruzione di elaborazione `<?xml?>`) |
| Firma binaria | Nessuna - XML in testo semplice; i file iniziano con `<?xml` seguito da un elemento radice `<jnlp>` |
| Sviluppatore originale | Sun Microsystems (in seguito Oracle); standardizzato come JSR-56 |
| Launcher legacy | `javaws` (Java Web Start), incluso in JRE da 1.4 a Java 8 |
| Launcher attuali | OpenWebStart (multipiattaforma, open-source); IcedTea-Web (Linux) |
| Stato del ciclo di vita | Java Web Start deprecato in Java 9 (2017); rimosso in Java 11 (2018) |
| Elemento di riferimento JAR | `<jar href="..."/>` all'interno del blocco `<resources>` collega i pacchetti `.jar` dell'applicazione |
| Descrittore di sicurezza | `<security><all-permissions/></security>` concede l'accesso completo; l'assenza indica l'esecuzione in sandbox |
| Targeting versione JRE | L'elemento `<java version="..."/>` o `<j2se version="..."/>` specifica il runtime minimo |
| Supporto avvio offline | L'elemento `<offline-allowed/>` consente l'avvio senza rete dopo il caching iniziale dei JAR |
| Tipi di applicazioni supportate | Applicazioni Java standard, applet ed estensioni di installazione (JNLP `<extension>` annidati) |
| Caching dei JAR | Il launcher scarica e memorizza i JAR localmente; l'attributo `version` su `<jar>` abilita gli aggiornamenti delta |
| Rilasciato | 2001 (Java Web Start, J2SE 1.3.1/1.4 era; standardized as JSR-56) |
| Standard aperto | Sì · royalty-free |
| Specifica | jcp.org |
Conversioni JNLP
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file JNLP.