Find JSRs
Submit this Search

Ad Banner

JSRs: Java Specification Requests
JSR 38: Application Installation API Specification

Updates to the Original JSR

The following updates have been made since the original request.

2004.04.14: Sun took over as Maintenance Lead of this JSR.
2002.11.06: JPL took over as Maintenance Lead of this JSR.

Original Java Specification Request (JSR)

Identification | Request | Contributions

Section 1: Identification

Submitting Participant #1: Defense Information Systems Agency (DISA)
Name of Contact Person: Thomas McVittie
E-Mail Address:
Telephone Number: +1 818-393-5052
Fax Number: +1 818-393-5151
Submitting Participant #2: Sun Microsystems
Name of Contact Person: Eric Nielsen
E-Mail Address:
Telephone Number: +1 650-786-7081
Fax Number: +1 650-786-5734

Other Companies who endorse this JSR:

  • IBM
  • InstallShield

Section 2: Request

2.1 Please describe the proposed Specification:
This is a proposal to develop a set of Java APIs that would enable cross platform installation and de-installation of applications. The functionality desired would allow installation of Java applications as well as platform-specific applications. The desired user experience should provide for a GUI-based approach and a command-line capability and support both attended and unattended software installation.

The specification will provide a set of Java APIs to support the installation, de-installation, and non-intereference of applications. It is expected that non-Java, platform specific executables can be installed as well as Java applications.

Our intent is to provide a royalty-free install API capable of installing applications and data on multiple platforms.

2.2 What is the target Java platform?
While it is expected that all Java platforms can use this installation capability, the J2SETM and J2EETM platforms are the primary targets for this JSR.
2.3 What need of the Java community will be addressed by the proposed specification?
This API will address the need within the Java community for a set of APIs to address the installation and removal of applications, both Java-based as well as platform-specific, in a consistent manner that preserves the integrity of the platform and any other applications installed on the platform. The intent is to provide the capability for developers to provide a single Java executable that can perform at a minimum the following functions:
  • collect system information such as installation location, platform type, disk resources, etc.,
  • determine adequacy of resources such as disk space, system revision levels, etc.,
  • obtain installation preferences and license information from user,
  • identify any system conflicts that may arise between applications to be installed and existing system (e.g. port usage conflicts or shared library dependencies),
  • install appropriate executables on system and perform any post install tasks needed for proper application operation.
2.4 Why isn't this need met by existing specifications?
No existing specifications address this need.
2.5 Please give a short description of the underlying technology or technologies:
We expect to leverage existing work by Sun Microsytems, IBM and InstallShield using the WebStart 3.0 APIs to provide a Wizard-like functionality for handling the machine-user dialog. Additional effort is needed to address the issues of non-interference with other applications currently installed, and to ensure subsequent application installation is aware of the requirements of previously installed applications.
2.6 Is there a proposed package name for the API Specification?
Not at this time.
2.7 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?
While the proposed specification may enable the installation of platform-specific applications, the specifications will not have any such dependencies.
2.8 Are there any security issues that cannot be addressed by the current security model?
2.9 Are there any internationalization or localization issues?
Standard Java internationalization methods will be sufficient for this API. The API will include panels that provide user instruction and request user interaction. These blocks of text should be included with the API, so localized resource bundles will likely be part of the reference implementation.
2.10 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?

Section 3: Contributions

3.1 Please list any existing documents, specifications, or implementations that describe the technology. Please include links to the documents if they are publicly available.
The javadoc for WebStart API 3.0 is available and can be used as a starting point for the specification process

The javadoc is available by downloading and installing the Web Start SDK from

3.2 Explanation of how these items might be used as a starting point for the work.
We can use this specification as a starting point because it provides the basic functionality required by any install solution. We are planing to enhance those capabilities.