Java Web Start
| Company type | Software framework |
|---|---|
| Industry | Computing / Software |
| Founded | March 2001 |
| Founder | Sun Microsystems |
| Fate | Discontinued by Oracle; replaced by open source alternatives such as IcedTea-Web and OpenWebStart |
| Successor | IcedTea-Web, OpenWebStart |
Area served | Worldwide |
| Products | Java Web Start (javaws) |
| Owner | Originally Sun Microsystems, later Oracle Corporation |
| Parent | Oracle Corporation (after acquisition of Sun Microsystems) |
| Website | www |
In computing, Java Web Start—also referred to as JavaWS, javaws, or JAWS—was a framework originally created by Sun Microsystems (now part of Oracle). It allowed users to initiate application software designed for the Java Platform directly from the Internet through a web browser. This technology facilitated automatic version updates for distributed applications and improved memory management for the Java virtual machine.
Included in the Java Platform up until its removal in Java SE 11, after being deprecated in Java SE 9, Java Web Start was discontinued by Oracle. Since Oracle did not contribute its source code to OpenJDK, initial OpenJDK releases lacked support for this feature. To fill this gap, the open source project IcedTea-Web, developed collaboratively by the AdoptOpenJDK community, RedHat, and Karakun AG, offers an independent implementation bundled with select OpenJDK distributions. Furthermore, OpenWebStart provides a comprehensive open source alternative built upon IcedTea-Web, which also includes options for commercial support.
Functionality
Unlike Java applets, applications launched via Web Start execute outside the browser environment, typically within a sandbox that closely resembles that of applets but includes slight enhancements such as user-consented file access. Applications bearing a digital signature are permitted to request extended privileges.
Java Web Start addresses many compatibility challenges related to browser-based Java plugins and diverse JVM versions by running applications separately from web pages in isolated processes.
It is also capable of launching unaltered applets packaged as .jar files through appropriate JNLP files that provide necessary parameters, although certain specialized scenarios might not be fully supported. Similar to applets, Java Web Start maintains cross-platform compatibility.
Deprecation
Oracle deprecated various deployment technologies including applets and Java Web Start starting with JDK 9.
In March 2018, Oracle announced that Java Web Start would be excluded from Java SE 11 (18.9 LTS) and subsequent versions, encouraging developers to transition toward alternative deployment solutions. Since then, multiple independent alternatives have been developed.
Implementation
Developers create an XML configuration file with a .jnlp extension that outlines the application's requirements, code locations, parameters, and permissions. When a browser downloads this file, it launches the Web Start client which retrieves all necessary resources and initiates the application.
Java Web Start provides classes within the javax.jnlp package that enable controlled access to system resources such as files and clipboard contents, ensuring applications operate within authorized limits.
Originally released by Sun in March 2001 as Web Start 1.0, 64-bit Windows compatibility was introduced only with Java 6. Since J2SE 1.4, Web Start has been bundled by default with the Java Runtime Environment (JRE) as javaws, removing the need for separate administrator installation.
Java Network Launching Protocol (JNLP)
The Java Network Launching Protocol (JNLP) specifies how Java Web Start applications are launched using an XML-based schema. JNLP files describe details such as locations of jar files, main class names, and program arguments. Properly configured browsers hand off these files to the JRE, which downloads and runs the application locally. Developed through the Java Community Process as JSR 56, JNLP has versions including 1.0, 1.5, and forthcoming maintenance release 6.0.
Among its key business-oriented features are automatic installation of the JRE if it is missing and specifying required JRE versions for applications. Programs execute from a local cache allowing offline usage while updates download when an internet connection is available—streamlining deployment processes.
End users can launch JNLP-based applications by installing a JNLP client—typically Java Web Start—which can also automatically install the application upon first run.
JNLP functions similarly to HTTP/HTML: when a user clicks a link, the browser requests a URL; instead of receiving HTML content, it obtains a JNLP file describing the Java application. The client parses this file, downloads necessary jar files, and starts the application. Resources marked as "lazy" are loaded on demand later during execution to enhance startup speed.
Example
Presented below is a straightforward JNLP file designed to launch an applet, detailing the code base, source location, primary class, and the dimensions of the window. This standalone file contains all essential references required to execute the application within a sandbox environment without needing additional permissions. It also supports offline functionality when cached and enables background updates.
<syntaxhighlight lang='xml'> <?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> </syntaxhighlight>
Pack200 compression
Introduced by Sun Microsystems in Java 1.5.0, Pack200 serves to minimize the size of Java Web Start applications by compressing jar files to roughly one-ninth their original size when they consist solely of Java classes.
While initially requiring configuration on the server side, Pack200 support was streamlined with Java SE 6 update 10, giving developers the ability to toggle this feature through JNLP files. This compression method significantly improves download speeds and startup times, particularly beneficial over slower network connections.
Signed Web Start applications
By default, Java Web Start applications operate under restricted permissions that limit access to system resources such as local files. Developers can lift these constraints by digitally signing their applications using the jarsigner utility included in the JDK.
Alternatives
The open-source IcedTea initiative provides an alternative JNLP implementation called IcedTea-Web, compatible with newer Java versions that no longer include official Web Start support.
After the removal of Web Start in Java 11, OpenWebStart was introduced by Karakun AG, building upon IcedTea-Web. This solution enhances functionality by offering native installers for Mac OS, Windows, and Linux platforms. Development of IcedTea-Web has received backing from organizations such as RedHat and AdoptOpenJDK.
Notable applications
- ArgoUML – a tool for creating Unified Modeling Language (UML) diagrams.
- CrossFTP – software providing FTP client and server capabilities.
- Elluminate Live – platform for web conferencing and virtual classrooms.
- Ganymede – network directory management system licensed under the GPL.
- Genie Workbench – automation tools tailored for film production workflows.
- Genevestigator – engine granting access to curated bioinformatics databases.
- Jake2 – Java adaptation of the Quake 2 game.
- JOSM – editor for OpenStreetMap developed in Java.
- muCommander – file manager supporting SSH and FTP protocols.
- PoxNora – turn-based strategy collectible card game with a 3/4 perspective.
- Wurm Online – 3D massively multiplayer online fantasy simulation game.
- yEd – editor designed for creating graphs and diagrams.
See also
- ClickOnce, a deployment solution within Microsoft's .NET framework.