Java Rich Internet Applications Guidet > Enhancements and Other Features > Pack200 and Version Download
Contents
Related Links
Prior to Java SE 6 update 10 release, engineers had to deploy the JNLPDownloadServlet on the web servers in order to use Pack200 or download specific versions of their application JARs. While this solution works, it limits the flexibility of deploying versioned or Pack200 compressed JARs: Engineers might not have access to deploy JNLPDownloadServlet on web servers.
The Java SE 6 update 10 release introduces two new Java system
properties to enable Pack200 and version download: jnlp.packEnabled
and jnlp.versionEnabled
.
When the Java system property jnlp.packEnabled
is
set to "true" in a jnlp file or an applet tag, the Java Plug-in or
Java Web Start software will download the .pack.gz version of JARs.
If the .pack.gz version is not available, the unzipped JAR will be
searched for.
Note: the compressed version of foo.jar should be named foo.jar.pack.gz.
Use the property tag to specify "jnlp.packEnabled" to "true" within the resources tags, i.e.:
<jnlp ...> ... <resources> <property name="jnlp.packEnabled" value="true"/> <java version="1.5+" href="http://javadl.sun.com/webapps/jawsautodl/AutoDL/j2se"/> <jar href="foo.jar" main="true" download="eager"/> </resources> ... </jnlp>
In the above case, Java Web Start and the new Java Plug-in will first look for foo.jar.pack.gz. If the file is not found, they will fall back and look for the original, foo.jar.
Pass the "-Djnlp.packEnabled" VM argument by using "java_arguments", i.e.:
<HTML> ... <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25> <PARAM NAME = "cache_archive" VALUE = "HelloWorld.jar"/> <PARAM NAME="java_arguments" VALUE="-Djnlp.packEnabled=true"/> </APPLET> ... </HTML>
This feature is only available to New Java Plug-in since it requires passing the VM argument to Java VM. The New Java Plug-in will look for HelloWorld.jar.pack.gz, if this file is not available, it will fall back and look for HelloWorld.jar.
Version download is the ability to request that specific
versions of certain jar files be used by applets and Java Web Start
applications. The jnlp.versionEnabled
applies to Java
Web Start applications and applets deployed using JNLP.
When the Java system property jnlp.versionEnabled
is set to "true" in the jnlp file, if the JAR version is specified,
the server is checked for the versioned JAR file using the naming
convention:
<file> ::= <name> "__" <options> ".jar" <options> ::= "V" <version-id>
Note: version 1.0 of foo.jar should be named foo__V1.0.jar.
The original jar will be used if the versioned jar file is not found.