A computer program builds application programming interfaces (APIs) and related software components for installing and uninstalling application programs in any of a variety of computers and operating systems that support the Java programming language in its binary form. This program is partly similar in function to commercial (e.g., InstallShield) software. This program is intended to enable satisfaction of a quasi-industry-standard set of requirements for a set of APIs that would enable such installation and uninstallation and that would avoid the pitfalls that are commonly encountered during installation of software. The requirements include the following:
- Properly detecting prerequisites to an application program before performing the installation;
- Properly registering component requirements;
- Correctly measuring the required hard-disk space, including accounting for prerequisite components that have already been installed; and
- Correctly uninstalling an application program. Correct uninstallation includes (1) detecting whether any component of the program to be removed is required by another program, (2) not removing that component, and (3) deleting references to requirements of the to-be-removed program for components of other programs so that those components can be properly removed at a later time.
This program was written by Paul Wolgast and Martha Demore of Caltech and Paul Lovvik of Sun Microsystems for NASA's Jet Propulsion Laboratory.
This software is available for commercial licensing. Please contact Karina Edmonds of the California Institute of Technology at (626) 395-2322. Refer to NPO-30778.
This Brief includes a Technical Support Package (TSP).

Application-Program-Installer Builder
(reference NPO-30778) is currently available for download from the TSP library.
Don't have an account?
Overview
The document outlines the Application-Program-Installer Builder (NPO-30778), developed by NASA's Jet Propulsion Laboratory (JPL). This tool is designed to facilitate the cross-platform installation and deinstallation of software applications, addressing the challenges associated with software deployment across various operating systems, including Windows, Solaris, and Linux.
The primary goal of the Application-Program-Installer Builder is to create a robust installation process that can handle multiple platforms from a single source and binary base. It leverages a product registry to ensure reliable installation and uninstallation of applications. The software is built on Java, allowing it to run on any platform that supports Java without the need for recompilation. This flexibility is crucial for developers who need to create installers for diverse environments.
Key features of the installer builder include:
-
Prerequisite Detection: The tool can accurately identify the necessary prerequisites for an application before installation, ensuring that all required components are in place.
-
Component Registration: It registers component requirements effectively, which is essential for managing dependencies between different software components.
-
Disk Space Measurement: The builder measures the required disk space accurately, taking into account any already installed prerequisite components, which helps prevent installation failures due to insufficient space.
-
Robust Uninstallation: The uninstallation process is designed to be careful and thorough. It detects if a target component is required by other components and avoids removing it prematurely. If a component that has dependencies is being removed, the tool ensures that references to those dependencies are updated, allowing for proper removal at a later time.
The document emphasizes the importance of creating a reliable installer that avoids common pitfalls in software installation, such as incomplete installations or improper removals. The JSR-38 Expert Group, part of the Java Community Process, is responsible for developing the specification for the Java Application Programming Interfaces (APIs) that support this functionality.
For further inquiries or assistance, the document provides contact information for the Innovative Technology Assets Management at JPL, as well as a notice regarding the proprietary nature of the information and compliance with U.S. export regulations.
In summary, the Application-Program-Installer Builder represents a significant advancement in software deployment technology, aiming to streamline the installation process across multiple platforms while ensuring robustness and reliability.

