Both applets and Java Web Start applications are Java Web
apps. Java Web apps 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 plug-in 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.