Application Installer Application Installer
home Student Projects no local find frame, full screen Google search web for topic jump to footer translate with Babelfish by Roedy Green ©1996-2008 Canadian Mind Products
This essay is about a suggested student project in Java programming. This essay gives a rough overview of how it might work. It does not describe an actual complete program. I have no source, object, specifications, file layouts or anything else useful to implementing this project. Everything I have to say to help you with this project is written below. I am not prepared to help you implement it; I have too many other projects of my own.

I do contract work for a living, which could include writing a program such as this. However, I don’t do people’s homework for them. That just robs them of an education.

You have my full permission to implement this project any way you please.

There are commercial tools like InstallShield, Wise and InstallAnywhere to wrap your MASM, C++ and Java applications up to make them easy to install on Windows. These schemes have the following drawbacks:
  1. They are outrageously expensive. They are too expensive for hobbyists or small businesses.
  2. They are hideously complicated. They use ugly scripting languages that grew like Topsy without plan.
  3. It is hard to do anything out the ordinary. You need clumsy mechanisms to insert your stub code.
  4. They are not as smooth as they could be for the end user, particularly in picking directory names. It should be very easy to take the default suggested name, but on a different drive. It should be easy to take the default suggested name, but nested in some other directory. It should allow the user to select from some most common possibilities, e.g. C:\Program Files\mindprod or C:\mindprod .
I propose writing a set of Java installer classes. You can then use them to whip together a custom install program. You don’t need to learn some arcane script language. If you need to do anything out of the ordinary, you have the full power of Java at your disposal.

The classes would handle such things as:

You would need to compile your program with a native mode compiler so that you have all the standard java classes you need embedded in an exe. Further, you wrap any other files you need with the installer in a self-extracting PKZIP exe. You don’t want to rely on a working JVM being previously installed.

Alternatively, you insist that a JVM and your installer be preinstalled. It then unpacks and installs compact download application packages.

Unfortunately the installer will likely be fatter than the app you are trying to install. Perhaps some advanced Java compilers or optimisers could help put the installer on a diet.

The first version would focus on Windows 95/98/NT. Later you might add classes for other platforms. Ideally your mainline program install would be more or less platform-independent.

Start with a very simple installer and gradually add features. This will keep you from being overwhelmed by detail. At each stage you will have something useful other can test. They will provide you feedback on which features are most important to add next.

  1. Use the ZIP classes to unpack a zip file to a fixed directory tree.
  2. Install an icon on the desktop to fire up the application.
  3. Install an item in the start menu to fire up the application.
  4. Dynamically configure to allow choice of drive.
  5. Dynamically configure to allow choice of directory.
  6. Allow reinstallation of the icons and menut items if they are damaged, without disturbing anything else.
  7. Split files into program and data files, so can upgrade without disturbing data files.
  8. Run a custom install program after files are in place.
  9. Allow changes/additions to the registry.

The other half of installing is maintaining an application with automatic updates. See the Automatic File Updater project.

installer
sanity checker

CMP_homejump to top
CMP logo
feedback Please email your feedback for publication, errors, omissions, broken/redirected link reports
and suggestions to improve this page to Roedy Green : feedback email
made with CSS
HTML Checked!
ICRA ratings logo
mindprod.com IP:[65.110.21.43]
Your face IP:[38.103.63.18] Spread the Net
You are visitor number 11,455.
You can get a fresh copy of this page from: or possibly from your local J: drive (Java virtual drive/Mindprod website mirror)
http://mindprod.com/project/installer.html J:\mindprod\project\installer.html