As we all know, Java's initial popularity was largly due to being able to run Applets from withing Netscape Navigator and later Internet Explorer. For the first time, it was possible to deliver live dynamic content to browsers.
Applets are very useful but are also fairly limited. For example, it is hard (although not impossible) to install a native library (such as an OpenGL graphics library) on the persons hard drive so that your applet will run and having to give users instructions on how to download and install libraries pretty much defies a large advantage of applets in the first place. You are also inevidably tied to the browser window in some way (for example if the user closes the browser, your applet -- even if in a different window -- will also close). There are also problems with conflucting versions of the JVM being installed.
Thus, it isn't really practicle to deploy "real" applications using applets. The traditional methods of using setup files will of course always work, but of course you must build and maintain installers for all your supported systems, and help your users when their installation fails. That's where Java Web Start (JWS) comes in. JWS uses Sun's Java Network Launch Protocol which essentially is a protocol for describing how to launch an application which is downloaded from a remote location. A JWS application is launched simply by clicking it's link. The JWS client then loads, downloads the relevent resources (or if running an application for the second time, checks to see if the cached ones are up to date and only downloads those that are not), and runs the application.From the horse's mouth: Quite simply, Java Web Start is a mechanism for program delivery through a standard Web server. Typically initiated through the browser, these programs are deployed to the client and executed outside the scope of the browser. Once deployed, the programs do not need to be downloaded again, and they can automatically download updates on startup without requiring the user to go through the whole installation process again. (ref)
JWS is fundementally different to Applets in several ways:
- Although it is often launched when the user clicks a JWS link in their browser, it runs completely independantly of the browser
- Native libraries can be deployed along with the java ones
- Jar files are cached to drasticly reduce the startup time when next the application is run
- Arguments can be passed to the JVM to achive things such as increasing the heap size
- Applications can be pre-deployed (say on a CD) and still use JWS to keep them up to date
- Links to JWS applications can be placed in the Windows start menu and desktop
All these features make Java Web Start a very convenient method of deploying applications and keeping your clients updated (as this is handled automatically). No installer is nessesary, no fiddling with native libraries, no patches, updates and "update availability checking scripts", less cross-platform hassles, the list goes on.
The Java 1.5 platform (currently in beta) has added a wealth of new features such as system wide deployment of the java web start cache (so sysadmins can pre-install JWS applications). Basically most of the features bring Java Web Start applications closer to being standard Java applications except that they are syncronised with a remote HTTP repository.References
- Tutorial Covering native libraries and multiple operating systems
- Unofficial FAQ
- Sun Documentation
- Java Forum Discussion