JNLP (Java Network Launching Protocol) for installing the JVM (Java Virtual Machine) and Java apps. Oracle has written a specific implementation of it called Java Web Start.
The Java Web Start entry will explain how to set up the *.jnlp to javaws.exe association in your browser and desktop.
|JNLP Versions||The XSD Schemas|
|Sample JNLP 7||The Validator Program|
|Icons||DTD for JNLP|
|Multiple JNLP Files||Learning More|
New in version 1.5, Java version 1.5 or later :
Here is an example using JNLP 7 specification. The install attribute controls whether the app shows up in the Windows Uninstall menu.Note the use of <java instead of <j2se and <update check=always policy=always />.
The ordering of the sections matters. You must do them in the order jnlp, information, security, update, resources, application-desc, applet-desc, component-desc, installer-desc.
Within the resources sections, order is again important: java, j2se, jar, nativelib, extension, property, package.
You nest <java inside <resources. However, you can nest another <resources inside the <java to describe the resources to use for that JVM only.
Every time Oracle releases a new JRE (Java Runtime Environment), you need to add it to all your JNLP files if you want your clients to be able to access your web start apps with it.
<!-- chaining off an auxiliary jnlp file from the main one --> <extension name="Installer" href="esperinstaller.jnlp"/>
You can check that your JNLP file is correctly formed using an XSD (XML Scheme Definition) Schema originally from Vampqh. You must copy the JNLP 1.0 XSD schema posted below into the current directory as file jnlp1.xsd or jnlp6.xsd then run the Java validation posted below with:
rem Validate a JNLP file with CMP ValidateJNLP utility java.exe ValidateJNLP jnlp6.xsd C:\mydir\myapp.jnlp
This is an XSD schema to validate JNLP 1.0 :
This is an XSD schema to validate JNLP 1.5. It was mechanically generated by Stylus Studio from the Oracle JNLP DTD (Document Type Definition). I modified it slightly to allow both :This JNLP 1.6 schema was mechanically generated by Stylus Studio from the Oracle JNLP DTD. I modified it slightly to correct two syntax errors in the DTD and to allow both an application and installer.
The above validator is not user friendly. You can get a good idea what it is looking for by reading the XSD file. You would be surprised how many errors you will find.
Unfortunately, Vampqh’s fancier validator, Vanessa, is no longer available.
<!ELEMENT update> should be: <!ELEMENT update EMPTY> and <!ELEMENT shortcut (desktop? menu?)> should be: <!ELEMENT shortcut (desktop?, menu?)>
You don’t need to concern yourself with DTD s when composing or using *.jnlp files, just in validating them to make sure they contain no syntax errors. The DTD file contains a formal description of the JNLP syntax. JNLP files no not need a DOCTYPE tag at the top pointing to the URL (Uniform Resource Locator) where you can download the DTD at http://java.sun.com/dtd/JNLP-6.0.dtd still hosted only at Oracle.
One way to learn JNLP tricks is to snoop on the JNLP files of other people’s applications.
rem jnlpview.bat viewing a JNLP file. javaws.exe -viewer rem then right click on the installed JWS app and click show JNLP file.
Starting with JDK 1.8.0 _ 40, you must sign your JNLP files. You don’t actually sign the JNLP file, you include it in the jar file and sign the jar file. The JNLP file must be named JNLP-INF/APPLICATION.JNLP. Note that is a - not an _. There is also another technique where the file is called JNLP-INF/APPLICATION_TEMPLATE.JNLP. This provides extra security, but it stops you from dynamically composing JNLP files. It also stops you from having several different JNLP files for different uses.
You still invoke the app with an duplicate standalone copy of the JNLP file. The run time checks that the internal and external JNLP files are identical.
This page is posted
Optional Replicator mirror
Your face IP:[220.127.116.11]
You are visitor number|