Rich Internet Applications Development and Deployment > Rich Internet Applications Decision Guide
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
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.
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.
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).
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.
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.
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 includes access to the JNLP API,
Applets cannot create shortcuts.
Java Web Start applications can install shortcuts that allow the application to be rerun, either online or offline, independent of the browser.
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.
Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.