// free tools for java
Installer
T o o l s
-Obfuscator
-Installer
-Assembler
-Links
-Old tools
  Jinstall is a small utility born out of the frustration of ensuring that different platforms have a way to extract and conveniently upgrade an archive.

Jinstall converts a directory tree into a java class which can be run to reproduce the original directory.

Download!

Download a *self installing archive (94702 bytes) of the compiled classes and source.
To install, store it on your system as install.class and run

> java install
  interactive usage
  Enter the directory where you installed jinstall, and type
> java jinstall
This will open up a box with some information you supply to convert a directory into a self installing archive. When you have entered all the information, hit Make Archive to create the archive, then Done to close the application. For information about what each field means, refer to the attributes in the batch usage section.
  batch usage
  To run jinstall noninteractively, supply the information in a specification file, and run jinstall as
> java jinstall path_to_spec_file
The specification file describes some attributes of the archive. Here is an example file
// Name for the archive
Name "Jell (parser generator)"

// Version string to identify it
Version "alpha 0.2"

// Name of directory to archive
ArchiveRoot "/work/jaxnjell"

// Output archive as file...
OutputFile "/tmp/install.class"

// URL to pick up any upgrades
UpgradeURL "http://www.sbktech.org/A03.class"

// Uncomment to prevent compression
// NoCompression
There are six attributes you can set, all but the UpgradeURL, OutputFile and NoCompression attributes are required to be present.
Name
Specify a string which is displayed as the name for the archive
Version
Specify a string used to label the version for the archive
ArchiveRoot
Specify a complete path to the directory which needs to be archived
UpgradeURL
Specify a URL which will hold an archive (when ready) for an upgraded version of the package. This mechanism is explained in more detail in the next section. By default, the upgrade utility is not included.
OutputFile
Specify a complete path to generated bytecode. The default name and location of the archive is install.class in the current working directory.
NoCompression
Specifying this flag turns off the compression code, which makes the archive (typically) about 25-30% larger, but a whole lot faster to uncompress.
If successful, it creates the file called install.class (or whatever you specified for OutputFile) which you can now distribute as your archive.
  adding upgrades
  This is not very clever, all you do is to provide a URL where you plan to keep new versions of your jinstall created archive. Jinstall will create a class called upgrade.class into your distribution, which the user can run to check, and download and install the latest copy as it becomes available. It is not a diff, its the whole new version.

As a suggestion, here is how this might work. Say you write a new application, which you make available for downloading as

  http://www.foo.com/app/install.class

UpgradeURL =
  http://www.foo.com/app/Version02.class
The UpgradeURL is what you would put into the specification file when creating the archive. When version 2 is ready, your site now might look like this
  http://www.foo.com/app/install.class
                            /\
                            ||
  http://www.foo.com/app/Version02.class

UpgradeURL =
  http://www.foo.com/app/Version03.class
The arrow denotes a link, so you make sure that Version02.class and install.class are the same things.

When you are ready with your third version, your web site might look like

  http://www.foo.com/app/install.class
                            /\
                            ||
  http://www.foo.com/app/Version03.class
                            /\
                            ||
 http://www.foo.com/app/Version02.class

 UpgradeURL =
   http://www.foo.com/app/Version04.class
This idea of course, to let people with all versions upgrade to the latest version.
  notes and ideas
  Jinstall currently uses a simple static Huffman tree to compress the data. This was the simplest non patented algorithm I could find. Archives typically compress only by about 25% or so, and the decoding is quite slow. Please educate me of alternatives.

I realize this tool does not answer many needs of upgrading and installing, please look at (for instance) a JavaWorld * article on software distribution for a "finer grained" approach which upgrades things a class at a time. The *Castanet product from Marimba is a neat commercial solution to keep your software uptodate.

I think the JavaWorld article proposes an approach which is too finegrained, and complex to keep uptodate. Also, it does not directly address the problem of upgrading non Java classes. What would you like to see? Please mail me suggestions, bug reports and ideas, and I will try to make this tool more useful.

 
T o o l s

Obfuscator | Installer | Assembler | Links | Old tools

http://www.sbktech.org/jinstall.html Revised: Thu Dec 19 08:54:04 1996
Copyright (C) 1996 KB Sriram.
Comments, bug reports: kbs@sbktech.org
Found something useful?