HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

The huge task of creating that great Java application is finally over. Although the product is "user friendly" when up and running, installation has typically been very cumbersome and time consuming. A product that is easy for the layman to install will surely outsell one that isn't.

Figure 1
Figure 1:  InstallAnywhere's Project Wizard walks the user
through the basics of building an installer, even automating tasks
like setting your application's classpath

You must now go back to work. What's needed is a development tool that not only enables applications to be installed easily for the end-user, but is quick and easy for the developer to use as well. What's needed is InstallAnywhere from Zero G Software, Inc. InstallAnywhere enables the creation of a single, universal installer that will operate on any Java-enabled platform. This includes Windows, UNIX and Mac OS. IA tailors itself to the user's system, saving the time and expense of building separate installers for each platform.

Installing IA was an absolute breeze. Anyone who can install basic software off a CD can have IA up and running in a matter of minutes. If you're like me, typing code at a command line all day will start to drive you batty. Here lies another wonderful feature: IA runs entirely in a GUI interface.

When I first opened IA, I was given two choices; an "open existing" option which allowed me to continue working on a previous installer, or a "new" option, which asked me to name the new installer. Upon clicking new, a "quick start" feature greeted me. It then walked me through a seven-step shortcut which made building my installer remarkably easy. The seven steps I had to follow were:

  1. Select the "Add files/folders" button
  2. Select and add the files to install
  3. Select the main class
  4. Create a launch Anywhere executable (for Java applications)
  5. Switch to the build task (for Java applications)
  6. Press the "build installer" button
  7. Run my installer

If a simple installer is required, I've found it! I came away amazed at just how easy it is to use this product. If your application requires more complex interactions, fear not. Although the seven-step method can't be used for more complex installations, life will still be much easier using IA.

Figure 2
Figure 2:  IA looks more like a Web page than a powerful builder

When I bypassed the "quick start" feature, I thought I was looking at a nicely laid out Web page rather than a powerful application builder. On the left side of the screen, there are seven tasks from top to bottom. When a task is clicked on, a center work field is filled with the various tools pertaining to that task. Let's take a look at each task, and what's involved with each one.

This task displays all the files and directories that will be installed. It is broken down into three panes:

  • File "Hierarchy" and assignment to "Bundles" on the top of the screen. This displays all files and folders that are part of the project. The icons on each file or folder indicate what item will be installed or what action will be taken during the installation process.
  • At the bottom left of the pane is the "Install File/Folder Action Customizer". This allows adjustment of how the file, folder or archive will be installed.
  • Rules List and Customizer: This allows the developer to assign or design custom "rules" or a set of conditions that must be met for an item to be installed.

This task shows the "Bundles" (functional groups of files) in the installer, along with the "Install sets" each bundle is assigned to. This task also has three panes:

  • The Bundles "Hierarchy" and assignment to "Install Sets." These are used mostly for custom installations so the end-user can choose which groups of files to install.
  • The Bundle Customizer: Shown in the lower left pane, this allows adjustment of various bundle settings.
  • Rules List and Customizer: Allows the same assignment of rules to bundles as to files, as described in the previous section.
Install Sets
This task shows the groupings of bundles that comprise the entire installation in your installer. It also has three panes:
  • Install sets list: Shows every install set in your installer. Allows settings for typical and minimal installations, as well as full adjustments to set the defaults for an installation.
  • Install Set Customizer: This setting allows the customizing of four install set settings. Name and Short Name assign a name and abbreviated name to identify your install set. Description provides descriptive help about an install set.
  • The Button section identifies the icon displayed inside each install set. A GIF or JPEG that is 32x32 pixels can be used.
  • Rules List and Rules Customizer: Allows you to assign criteria (rules) to any install set.
This task allows you to specify five options about the installer being designed:
  • The Operation menu allows you to modify certain basic settings in each installer.
  • The Rules menu assigns criteria that must be met for the installation to run.
  • The Appearance menu allows the assignment of a name and appearance of your installer.
  • The Steps menu assigns the steps to include in the end-users installation process. One option here allows you to choose to install a Java Virtual Machine specifically for the application being installed or to use an existing JVM.
  • The Billboards menu allows you to specify which billboards will be shown and what order they will appear in. Billboards will appear during end-use installation. They may be used to highlight features of the application being installed, or they may provide a set of tips and reminders to the end user. I found this to be a handy feature.
This task brings up the interface for the IA plug-ins you may be using. Zero G tells us that there are a number of plug-ins under development, including a multi-language kit.

The Build task allows the specification of what types of installers you want to build and which platforms you want your installer to run on. One of the specifications of this task is the "Delivery" option, which specifies which type of installation you want to build. IA supports two types of installations:

  • CDROM/File server: This creates a folder for each specified platform. Inside each folder is a double-clickable "LaunchAnywhere," an executable that will run the Java installer. Use this type of delivery to build an installer that will be executed from a CD-ROM or a floppy disk. The folder structure is written out to any ISO 9660-compatable CD-ROM drive.
  • Web downloads: This creates a clickable self-extractor for each platform. These contain a copy of the installation with the correct VM for the platform. They can be placed on a server for download.
View Java
This task will generate Java code for the installer you have just built. By looking at this, you can see how objects are created and get a good picture of how your installer will work. This is a good feature for the true Java-heads who are just not comfortable unless they can look directly at their source code. The code faithful will be disappointed to learn that the code must be edited outside of IA. Files to be edited must be copied and then opened in an external development environment. The InstallAnywhere Standard Edition, it should be noted, does not support the addition of code outside of the existing IA objects. You would have to move up to InstallAnywhere Commercial Edition, an additional $3000.00 cost, to have this feature. For the extra three grand, you get detailed developer and API documentation and sample code and can use JavaBeans.

Figure 3
Figure 3:

The job of the software developer is to develop products that are easy for the customer to install and use. In today's "we need it yesterday" world, it's good to know that a tool is available that allows quick and easy development of reliable custom installers. Give InstallAnywhere a try. It could help make your task just a bit easier.

About the Author
Edward Zebrowski is a technical writer based in the Orlando, FL area. Ed runs his own Web development company, ZebraWeb, and can be reached on the Net at [email protected]


All Rights Reserved
Copyright ©  2004 SYS-CON Media, Inc.
  E-mail: [email protected]

Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.