JNLP : Java Glossary

go to home page J words local find full screen, hide local find menu Google search web for more information on this topic jump to foot of page translate this page with Babelfish punctuation 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z (all) ©1996-2009 2007-07-22 Roedy Green, Canadian Mind Products
JNLP
Java Network Launching Protocol. A protocol for installing the JVM and Java apps. Sun 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 JNLP Validation
Sample JNLP 1.5 The XSD Schemas
Sample JNLP 1.6 The Validator Program
Icons DTD for JNLP
Off/line Snooping
JVM Versions Learning More
Multiple JNLP Files Links
JNLP Tokens

JNLP Versions

JNLP comes in three versions. 1.0, 1.5 and 6.0.

New in version 1.5, JDK 1.5+:

New in version 6.0, JDK 1..6+:

Sample JNLP 1.5

JNLP (Java Network Launching Protocol) is the specification. You create an XML specification file, e.g. esper.jnlp that looks like this:

Sample JNLP 1.6

Here is a sample JNLP 1.6 file:
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.

Icons

Unfortunately Java Web Start, prior to version 1.6, does not support *.png files for the jnlp <icon image, just *.gif and *.jpg. *.pngs are supported in JDK 1.6. It is best to use a 64 × 64 icon. Unlike *.ico files, you may not specify multiple resolutions. If you used the *.png feature, it would cut off the many users still on Java 1.5. There is no support for *.ico files since they are Windows proprietary, and JWS apps are multi-platform. Note that this image is not in the jar. It has to be downloadable separately before the jar is.

Off/line

If the app needs to be online to execute, remove the <offline-allowed/> from the information section. Beware, some websites erroneously document the parameter as <allow-offline/>.

JVM Versions

<j2se version="1.3+" /> Does not mean that JDK version 1.3 or higher will be just fine. It means that any 1.3 version will do except a beta or ea. It does not imply a 1.4 will do. Others claim it does. I have not performed the experiments. To be safe, I insert multiple lines like this:

Every time Sun releases a new JRE, 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.

Multiple JNLP files

There are at least two situation where you might use two JNLP files for a single application:
  1. When you have an installer. It needs its own separate JNLP file.
  2. When some jars are signed with one certificate and others with another. You need an JNLP file for each different certificate and its jars.
You chain the secondary JNLP off the main JNLP with a line after the <jar:
<!-- chaining off an auxiliary jnlp file from the main one -->
<extension name="Installer" href="esperinstaller.jnlp"/>

JNLP Tokens

There are three magic tokens you can use in field names. They will be replaced when the jnlp script is executed. Unfortunately, I have not been able to discover out what strings they generate: $$codebase, $$context and $$name. I suspect codebase= "$$codebase" means use the directory where you found the jnlp file as the codebase. $$name might be the name of the jnlp file.

JNLP Validation

You can check that your JNLP file is correctly formed using an XSD 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
java.exe ValidateJNLP jnlp6.xsd C:\mydir\myapp.jnlp

The XSD Schemas

This JNLP 1.0 schema originaly came from Vampqh. I have modified it slightly.
This JNLP 1.5 schema was mechanically generated by Stylus Studio from the Sun JNLP DTD. I modified it slightly to allow both an application and installer.
This JNLP 1.6 schema was mechanically generated by Stylus Studio from the Sun JNLP DTD. I modified it slightly to correct two syntax errors in the DTD and to allow both an application and installer.

The Validator Program

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.

DTD for JNLP

Sun has posted a and According to Piotr Kobzdaemail Piotr Kobzda there are errors in Sun’s posted JNLP 6.0 DTD, and Andrew Thompsonemail Andrew Thompson concurs.
<!ELEMENT update>
should be:
<!ELEMENT update EMPTY>
and
<!ELEMENT shortcut (desktop? menu?)>
should be:
<!ELEMENT shortcut (desktop?, menu?)>
view

Snooping

One way to learn JNLP tricks is to snoop on the JNLP files of other people’s applications. You can do that most easily by typing at the command prompt:
rem jnlpview.bat viewing a JNLP file.
javaws.exe -viewer
rem then right click on the installed JWS app and click show JNLP file.

Learning More

Sun’s JDK Technote Guide on JNLP syntax : available:
cooktop
DTD
JaNeLA: JNLP verifier
Java Web Start
Lopiqua JNLP quick reference
Validating JNLP with a DTD
XML: JNLP is a type of XML and thus uses XML editing and validation tools
XSD

CMP homejump to top You can get the freshest copy of this page from: or possibly from your local J: drive (Java virtual drive/mindprod.com website mirror)
http://mindprod.com/jgloss/jnlp.html J:\mindprod\jgloss\jnlp.html
CMP logofeedback Please email your feedback for publication, errors, omissions, typos, formatting errors, ambiguities, unclear wording, broken/redirected link reports, suggestions to improve this page or comments to Roedy Green : feedback email
mindprod.com IP:[65.110.21.43]
view BlogYour face IP:[38.107.191.109]
You are visitor number 24,368.