Both applets and Java Web Start applications are rich
internet applications (RIAs). RIAs are easier to distribute
than standard applications, because they're launched over the web.
They're also more secure--they can only access the user's system in
highly controlled ways, unless and until the developer signs the
code and the user accepts the security certificate. (On the other
hand, extended access to the user's system may require that
certificate--something a standard application doesn't need).
Here's a table that summarizes the differences:
Feature
Applet
Java Web Start
Java version
New Plug-in:
Individual applets may specify the exact version, or version
range, of the Java platform it will use. The new Java Plug-in
(released in Java SE 6 update 10) supports both static version
requests (such as "5.0 update 9") and family version requests (such
as "5.0 family"), and supports several backward compatibility
mechanisms such as static and family ClassIDs in Internet Explorer.
See Applet
Deployment parameters for details.
Old Plug-in:
Java Plug-in can run only the version of Java with which it was
distributed. This means that to take advantage of the latest
features in Java Plug-in, you must also use the latest version of
Java. Further, recent changes in the Deployment Security Policy require that only the
latest version deployed on the client machine be used. This is
usually not a problem, since versions of Java are generally forward
compatible.
For cases where compatibility between major releases is an issue,
we have also provided a feature called the Family ClassID (for Microsoft Internet Explorer
only).
Java Web Start will also be used only from the latest Java
version installed on a system, but the version of Java Web Start
run is independent of the version of the Java platform used. A Java
Web Start application can specify the exact version, or version
range, of the Java platform that it will use.
Cookies
Java Plug-in applets run in the same session as the browser, and
so have access to both "persistent" cookies and "session" cookies
already stored in the browser session.
Java Web Start runs outside the browser process. It can access
"persistent" cookies stored by the browser (it does this by using
the WinINet API on Windows), but has no access to "session" cookies
unless set in that application using the java.net.CookieManager and
java.net.CookieHandler API's.
Java Web Start is limited to invoking the default browser to
display specific URL's (see JNLP
API).
Java Runtime
New Plug-in:
An applet may specify Java Runtime
parameters used to launch that particular applet instance,
without affecting the parameters used to launch other applets.
Specifying Java Runtime parameters via the Java Control Panel is
also supported for backward compatibility purposes. See Determining final deployment
information for details on how Java Runtime parameters are
reconciled.
Old Plug-in:
Java Plug-in shares one Java Runtime Environment among multiple
Java applets. As such, no applet can have control over the startup
parameters of the JRE (Java Runtime parameters). Java Runtime
parameters must be set by the user (for all applets) in the Java
Control Panel.
Java Web Start applications have (limited) control over the Java
Runtime parameters that is used to launch that application.
JNLP API
Applets launched using Java Network Launching Protocol (JNLP)
have access to JNLP API which allows unsigned applications
access to persistent storage, download control, file I/O, and
more.
Java Web Start applications can install shortcuts that allow the
application to be rerun, either online or offline, independent of
the browser.
Other differences
There are several other minor differences caused by need to
maintain compatibility with earlier versions. For further
information on the specific differences between Java Web Start and
Java Plug-in can be found in the Migration Guide.