HOME

TheInfoList



OR:

In
computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. Computing has scientific, e ...
, Java Web Start (also known as JavaWS, javaws or JAWS) is a deprecated
framework A framework is a generic term commonly referring to an essential supporting structure which other things are built on top of. Framework may refer to: Computing * Application framework, used to implement the structure of an application for an op ...
developed by
Sun Microsystems Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, the ...
(now
Oracle An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination. Description The word '' ...
) that allows users to start
application software Application may refer to: Mathematics and computing * Application software, computer software designed to help the user to perform specific tasks ** Application layer, an abstraction layer that specifies protocols and interface methods used in a c ...
for the
Java Platform Java is a set of computer software and specifications developed by James Gosling at Sun Microsystems, which was later acquired by the Oracle Corporation, that provides a system for developing application software and deploying it in a cro ...
directly from the
Internet The Internet (or internet) is the global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a '' network of networks'' that consists of private, pub ...
using a
web browser A web browser is application software for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's screen. Browsers are used on ...
. The technology enables seamless version updating for globally distributed applications and greater control of memory allocation to the Java virtual machine. Java Web Start was distributed as part of the Java Platform until being removed in Java SE 11, following its deprecation in Java SE 9. The code for Java Web Start was not released by Oracle as part of
OpenJDK OpenJDK (Open Java Development Kit) is a free and open-source implementation of the Java Platform, Standard Edition (Java SE). It is the result of an effort Sun Microsystems began in 2006. The implementation is licensed under the GPL-2.0-only w ...
, and thus OpenJDK originally did not support it. IcedTea-Web provides an independent open source implementation of Java Web Start that is currently developed by the AdoptOpenJDK community, RedHat and Karakun AG, and which is bundled in the official OpenJDK installer. Next to this OpenWebStart provides an
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
based implementation that is based on IcedTea-Web but offers more features and commercial support options.


Functionality

Unlike
Java applet Java applets were small applications written in the Java programming language, or another programming language that compiles to Java bytecode, and delivered to users in the form of Java bytecode. The user launched the Java applet from a ...
s, Web Start applications do not run inside the browser. By default they run in the same sandbox as applets, with several minor extensions like allowing to load and save the file that is explicitly selected by the user through the file selection dialog. Only signed applications can be configured to have additional permissions. Web Start has an advantage over applets in that it overcomes many compatibility problems with browsers' Java plugins and different
JVM A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes ...
versions. Web Start programs are no longer an integrated part of the web page, they are independent applications that run in a separate frame. Web Start can also launch unmodified applets that are packaged inside .jar files, by writing the appropriate JNLP file. This file can also pass the applet parameters. Such applets also run in a separate frame. Applet launcher may not support some specific cases like loading class as resource. Like applets, Java Web Start is
cross-platform In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software r ...
.


Deprecation

With JDK9, several deployment technologies including applets and Java Web Start were deprecated by Oracle. In March 2018, Oracle announced it will not include Java Web Start in Java SE 11 (18.9 LTS) and later. Developers will need to transition to other deployment technologies. A few stand-alone
alternatives Founded in 1994, Alternatives, Action and Communication Network for International Development, is a non-governmental, international solidarity organization based in Montreal, Quebec, Canada. Alternatives works to promote justice and equality a ...
have since arisen.


Implementation

The developer prepares a special XML file with JNLP extension. This file describes the application requirements, code location, parameters and additional permissions (if any). The browser downloads this file as any other and (following its
MIME type A media type (also known as a MIME type) is a two-part identifier for file formats and format contents transmitted on the Internet. The Internet Assigned Numbers Authority, Internet Assigned Numbers Authority (IANA) is the official authority for t ...
, application/x-java-jnlp-file) opens it with Web Start tool. Web Start tool downloads all necessary resources and launches the application. Java Web Start provides a series of
class Class or The Class may refer to: Common uses not otherwise categorized * Class (biology), a taxonomic rank * Class (knowledge representation), a collection of individuals or objects * Class (philosophy), an analytical concept used differentl ...
es in the javax.jnlp package which provide various services to the application. Sun designed most of these services with the aim of allowing carefully controlled access to resources (such as files and the system clipboard) while restricting the application to authorized operations. Sun introduced version 1.0 of Web Start in March 2001, while 64-bit Windows support was added only in Java 6Bug ID 4802695, Support 64-bit Java Plug-in and Java webstart on Windows/Linux on AMD64
/ref> (later than 64-bit Java was first available). Since J2SE 1.4 Web Start comes as a default part of
Java Runtime Environment Java is a set of computer software and specifications developed by James Gosling at Sun Microsystems, which was later acquired by the Oracle Corporation, that provides a system for developing application software and deploying it in a cros ...
(JRE) called javaws, computer administrators no longer have to install it separately.


Java Network Launching Protocol (JNLP)

Programmers often speak of the Java Network Launching Protocol (JNLP) interchangeably with the term "Web Start". The JNLP protocol, defined with an
XML schema An XML schema is a description of a type of Extensible Markup Language, XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntactical constraints imposed ...
, specifies how to launch Java Web Start applications. JNLP consists of a set of rules defining how exactly to implement the launching mechanism. JNLP files include information such as the location of the
jar A jar is a rigid, cylindrical or slightly conical container, typically made of glass, ceramic, or plastic, with a wide mouth or opening that can be closed with a lid, screw cap, lug cap, cork stopper, roll-on cap, crimp-on cap, press-on c ...
package file and the name of the main class for the application, in addition to any other parameters for the program. A properly configured browser passes JNLP files to a Java Runtime Environment (JRE) which in turn downloads the application onto the user's machine and starts executing it. The development of JNLP took place under the
Java Community Process The Java Community Process (JCP), established in 1998, is a formalized mechanism that allows interested parties to develop standard technical specifications for Java technology. Anyone can become a JCP Member by filling a form available at thJCP w ...
as JSR 56. Important Web Start features include the ability to automatically download and install a JRE in the case where the user does not have Java installed, and for programmers to specify which JRE version a given program needs in order to execute. The user does not have to remain connected to the Internet to execute the downloaded programs, because they execute from a locally maintained
cache Cache, caching, or caché may refer to: Places United States * Cache, Idaho, an unincorporated community * Cache, Illinois, an unincorporated community * Cache, Oklahoma, a city in Comanche County * Cache, Utah, Cache County, Utah * Cache County ...
. Updates of the software download from the Web and become available when the user has a connection to the Internet, thus easing the burden of deployment. Any computer user can use JNLP simply by installing a JNLP client (most commonly Java Web Start). The installation can occur automatically such that the end-user sees the client launcher downloading and installing the Java application when first executed. JNLP works in a similar fashion to how HTTP/HTML works for the web. For rendering an HTML webpage, after the user clicks on a weblink, the browser submits a URL to a
webserver A web server is computer software and underlying hardware that accepts requests via HTTP (the network protocol created to distribute web content) or its secure variant HTTPS. A user agent, commonly a web browser or web crawler, initiate ...
, which replies with an HTML file. The browser then requests the resources referred to by this file (images,
css Cascading Style Sheets (CSS) is a style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML (including XML dialects such as SVG, MathML or XHTML). CSS is a cornerstone techno ...
), and finally renders the page once it has received enough information. Page rendering usually starts before all resources have downloaded; some resources not critical to the layout of the page (such as images) can follow on afterwards. JNLP mirrors this process; in the same way that a Web browser renders a webpage, a JNLP client "renders" a Java app. After the user clicks on a weblink, the browser submits a URL to a webserver, which replies with a JNLP file (instead of a HTML file) for the application. The JNLP client parses this file, requests the resources specified (jar files), waits for the retrieval of all required resources, and then launches the application. The JNLP file can list resources as "lazy", which informs the JNLP client that the application does not need those resources to start, but can retrieve them later on when/if the application requests them.


Example

The example below gives a simple JNLP file to launch the applet, specifying code base, source, main class and window size. Such file contains all necessary references and is self-sufficient to launch the application. As no permissions are requested, the code will run in a sandbox. JNLP also states that this application can run offline (if already cached) and should be updated as a background process. Launch applet with Web Start Foo Bar Inc.


Pack200 compression

To reduce the size of a Java Web Start application Sun Microsystems introduced a compression system called
Pack200 Pack200, specified in Java Community Process, JSR 200 (J2SE 1.5), deprecated in JDK Enhancement Proposal, JEP 336 (Java SE 11) and removed in JDK Enhancement Proposal, JEP 367 (Java SE 14), is a Data compaction, compacting archive format developed b ...
in Java 1.5.0. It can compress a large jar file to one-ninth of its original size if it contains only Java classes. Java Web Start has supported Pack200 since it first appeared, but initially this feature required server-side cooperation and a certain amount of expertise to set up. When Sun introduced Java SE 6u10, Pack200 support became available without the need for special server support. Application designers can enable or disable this feature within JNLP files. On slow connections Pack200 gives a performance boost in application startup time and download time.


Signed Web Start applications

By default, Java Web Start applications run "restricted", which means that they do not have access to some system resources such as local files. But publishers can remove these restrictions by signing their Web Start applications with the jarsigner tool that comes with the
JDK The Java Development Kit (JDK) is a distribution of Java Technology by Oracle Corporation. It implements the Java Language Specification (JLS) and the Java Virtual Machine Specification (JVMS) and provides the Standard Edition (SE) of the Java ...
.


Alternatives

The open-source IcedTea project provides an alternative JNLP implementation in ''IcedTea-Web''. As of version 1.7.2, it also works on newer versions without official JWS support. To run Java Web Start-based application after the release of Java 11, the company Karakun AG has released the open source tool OpenWebStart, based on IcedTea-Web. The tool includes all the functionality of IcedTea-Web and adds extended features, such as native installers for Mac OS, Windows, and Linux. IcedTea-Web was created with support from RedHat and AdoptOpenJDK.


Notable applications

*
ArgoUML ArgoUML is an UML diagramming application written in Java and released under the open source Eclipse Public License. By virtue of being a Java application, it is available on any platform supported by Java SE. History ArgoUML was originally deve ...
– an
UML The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. The creation of UML was originally m ...
diagramming application. * CrossFTP – an FTP client and server. *
Elluminate Live Elluminate Live! was a web conferencing program developed by Elluminate Inc. Elluminate "rented out" virtual rooms or vSpaces where virtual schools and businesses can hold classes and meetings. Elluminate was acquired by Blackboard Inc. and renamed ...
– a web conferencing / virtual classroom program. * Ganymede – a GPL-licensed network directory management system * Genie Workbench – a set of film production automation tools. *
Genevestigator Genevestigator is an application consisting of a gene expression database and tools to analyse the data. It exists in two versions, biomedical and plant, depending on the species of the underlying microarray and RNAseq data. It was started in Janu ...
, access engine to the curated bioinformatical database. *
Jake2 Jake2 is a Java port of the GPL release of the Quake II game engine. History The 0.9.1 version of Jake2 was shown by the JOGL team for JavaOne 2004, to present an example of Java-OpenGL interoperability. Jake2 has since been used by Sun as ...
– A Java port of Quake 2. *
JOSM JOSM () ''(Java OpenStreetMap editor)'' is a free software desktop editing tool for OpenStreetMap geodata created in Java, originally developed by Immanuel Scholz and currently maintained by Dirk Stöcker. The editing tool contains advanced featu ...
– The Java
OpenStreetMap OpenStreetMap (OSM) is a free, open geographic database updated and maintained by a community of volunteers via open collaboration. Contributors collect data from surveys, trace from aerial imagery and also import from other freely licensed g ...
editor. * muCommander A file Manager and Norton Commander clone with SSH and ftp features *
PoxNora ''PoxNora: Battlefield of the Immortals'' is a multiplayer online game that combines a digital collectible card game with a turn-based strategy game in a fantasy setting. ''PoxNora'' was originally launched via Java Web Start through a browser an ...
– a 3/4 perspective,
turn-based strategy A turn-based strategy (TBS) game is a strategy game (usually some type of wargame, especially a strategic-level wargame) where players take turns when playing. This is distinguished from real-time strategy (RTS), in which all players play si ...
,
collectible card game A collectible card game (CCG), also called a trading card game (TCG) among other names, is a type of card game that mixes strategy game, strategic deck building elements with features of trading cards, introduced with ''Magic: The Gathering'' in ...
. *
Wurm Online The Wurm (; nl, Worm ) is a river in the state of North Rhine-Westphalia in western Germany. It rises in the Eifel mountains and flows for 57 kilometres before discharging into the Rur. Geography The Wurm is a left (western) tributary of th ...
– a 3D Massively Multiplayer Online Fantasy Simulator. *
yEd yEd is a general-purpose diagramming program with a multi-document interface. It is a cross-platform application written in Java (programming language), Java that runs on Windows, Linux, Mac OS, and other platforms that support the Java Virtual ...
– a graph and diagram editor.


See also

*
Zero Install Zero Install is a means of distributing and packaging software for multiple operating systems (Unix-like including Linux and macOS, Windows). Software Rather than the normal method of downloading a software package, extracting it, and install ...
, a similar system which works for non-Java applications. *
ClickOnce ClickOnce is a component of Microsoft .NET Framework 2.0 and later, and supports deploying applications made with Windows Forms or Windows Presentation Foundation. It is similar to Java Web Start for the Java Platform or Zero Install for Linux. ...
,
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
.NET's similar framework.


References


External links


Java Web Start product page
* {{Java (Sun) Web Start Computer-related introductions in 2001