Download Java Installer Updated
In
computing,
Java Web Start (also known as
JavaWS,
javaws or
JAWS) is a
framework developed by
Sun Microsystems (now
Oracle) that allows users to start
application software for the
Java Platform directly from the
Internet using a
web browser. Some key benefits of this technology include seamless
version updating for globally distributed applications and greater control of memory allocation to the
Java virtual machine.
Functionality
Unlike
Java applets, Web Start applications do not run inside the browser. However, by default they run in the same
sandbox
as applets, with several minor extensions like allowing to load and
save the file that is explicitly selected by the user through the file
selection dialog. Only signed applications can be configured to have
additional or even all permissions.
Web Start has an advantage over applets in that it overcomes many compatibility problems with browsers' Java
plugins and different
JVM
versions. On the other hand, Web Start programs are no longer part of
the web page. They are independent applications that run in a separate
frame.
Web Start can also launch unmodified applets that are packaged inside
.jar files, by writing the appropriate JNLP file. This file can also
pass the applet parameters. Such applets also run in a separate frame.
Applet launcher may not support some specific cases like loading class
as resource.
Like applets, Java Web Start is cross platform.
Implementation
Early versions of Java Web Start came with an application manager where, e.g., Sun's demo applications could be launched
The developer prepares a special XML file with JNLP extension. This
file describes the application requirements, code location, parameters
and additional permissions (if any). The browser downloads this file as
any other and (following its
MIME type,
application/x-java-jnlp-file
) opens it with Web Start tool. Web Start tool downloads all necessary resources and launches the application.
Java Web Start provides a series of
classes in the
javax.jnlp
package
which provide various services to the application. Sun designed most of
these services with the aim of allowing carefully controlled access to
resources (such as files and the system clipboard) while restricting the
application to authorized operations.
Sun introduced version 1.0 of Web Start in March 2001,
[1] while 64-bit Windows support added only in Java 6
[2] (later than 64-bit Java was first available). Since
J2SE 1.4 Web Start comes as a default part of
Java Runtime Environment (JRE) called
javaws
, computer administrators no longer have to install it separately.
Java Network Launching Protocol (JNLP)
Programmers often speak of the
Java Network Launching Protocol (
JNLP) interchangeably with the term "Web Start". The JNLP protocol, defined with an
XML
schema, specifies how to launch Java Web Start applications. JNLP
consists of a set of rules defining how exactly to implement the
launching mechanism. JNLP files include information such as the location
of the
jar
package file and the name of the main class for the application, in
addition to any other parameters for the program. A properly configured
browser passes JNLP files to a Java Runtime Environment (JRE) which in
turn downloads the application onto the user's machine and starts
executing it. The development of JNLP took place under the
Java Community Process as JSR 56.
It includes the original 1.0 release, the subsequent 1.5 maintenance release, and as of 2006, the pending 6.0 maintenance release.[clarify]
Important Web Start features include the ability to automatically
download and install a JRE in the case where the user does not have Java
installed, and for programmers to specify which JRE version a given
program needs in order to execute. The user does not have to remain
connected to the Internet to execute the downloaded programs, because
they execute from a locally maintained
cache.
Updates of the software download from the Web become available when the
user has a connection to the Internet, thus easing the burden of
deployment.
Any computer user can use JNLP by simply installing a JNLP client
(most commonly Java Web Start). The installation can occur automatically
such that the end-user sees the client launcher downloading and
installing the Java application when first executed.
JNLP works in a similar fashion to how HTTP/HTML works for the web. For
rendering a HTML
webpage, after the user clicks on a weblink, the browser submits a URL to a
webserver, which replies with an HTML file. The browser then requests the resources referred to by this file (images,
css),
and finally renders the page once it has received enough information.
Page rendering usually starts before all resources have downloaded; some
resources not critical to the layout of the page (such as images), can
follow on afterwards.
JNLP mirrors this process; in the same way that a Web browser renders a webpage, a JNLP client "renders" a
Java app.
After the user clicks on a weblink, the browser submits a URL to a
webserver, which replies with a JNLP file (instead of a HTML file) for
the application. The JNLP client parses this file, requests the
resources specified (jar files), waits for the retrieval of all required
resources, and then launches the application. The JNLP file can list
resources as "lazy", which informs the JNLP client that the application
does not need those resources to start, but can retrieve them later on
when/if the application requests them.
Example
The example below describes a simple JNLP to launch the applet,
specifying code base, source, main class and window size. Such file
contains all necessary references and is self-sufficient to launch the
application. As no permissions are requested, the code will run in a
sandbox. JNLP also states that this application can run offline (if
already cached) and should be updated as a background process.
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://ultrastudio.org/upload" href="">
<information>
<title>Launch applet with Web Start</title>
<vendor>Foo Bar Inc.</vendor>
<offline-allowed/>
</information>
<resources>
<j2se version="1.5+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="Ray-2.3-4ca60e46-0956-3f22-983c-e3ed986dfd03.jar" main="true" />
</resources>
<applet-desc>
<name="Ray diagram applet" main-class="raydiagramsapplet.Main"
width="300" height="200">
</applet-desc>
<update check="background"/>
</jnlp>
Pack200 compression
To reduce the size of a Java Web Start application Sun Microsystems introduced a compression system called
Pack200 in Java 1.5.0. It can compress a large jar file to one-ninth of its original size if it contains only Java classes.
[3]
Java Web Start has supported Pack200 since it first appeared, but
initially this feature required server-side cooperation and a certain
amount of expertise to set up. When Sun introduced Java SE 6u10, Pack200
support became available without the need for special server support.
Application designers can enable or disable this feature within JNLP
files.
On slow connections Pack200 gives a performance boost in application startup time and download time.
Signed Web Start applications
By default, Java Web Start applications run "restricted", which means
that they do not have access to some system resources such as local
files. But publishers can remove these restrictions by signing their Web
Start applications with the
jarsigner
tool that comes with the
JDK.
Free alternatives
Java Web Start is not part of
OpenJDK and is proprietary. The open-source
IcedTea project provides an alternative JNLP implementation in
IcedTea-Web.
[4]
Well-known applications
See also
References
External links
JNLP implementations other than Sun's reference implementation:
[hide]
|
|
Java platforms |
|
|
|
Sun technologies |
|
|
Platform technologies |
|
|
Major third-party technologies |
|
|
History |
|
|
Major programming languages |
|
|
Java conferences |
|
|