The jar replacement for fast and intelligent archive updates 'jamjar'.

Missing functionality:

  - the -x extract function is not working yet (notify me if that is a problem,
    implementing is a matter of hours).

Requirements:

  - you need to have a library of zlib installed. Normal Linux distributions
    have this installed default if you ask for the 'developers' option.
    Otherwise, you can get it at http://www.gzip.org/zlib

  - you need to have 'jam' installed, the 'make' replacement. Jam is a lot
    better than make IMHO. You can find jam at http://www.perforce.com/jam/jam.html

Install: 

  - install zlib and jam first, according to the installation instructions.

  - type 'jam' in the directory where you find this README and try out the
    jamjar tools that is build in the build-<xxx> directory; <xxx> depends on
    your machine. On my Intel linux box 'build-linuxx86'. 
    Once it runs properly, you can do 'jam install' as root to install
    jamjar in the /usr/local/bin directory.

  - type 'jamjar -h' for help.

What's up:

Read the file LICENCE.

At ACUNIA, the tool 'jam' is used for automating builds. This tool works
very well partly because in a build tree, with a large number of
directories, the normal 'make' program must be invoked recursively for the
whole build. Jam doesn't work recursively but invokes all tools and
generates all files from the top directory, using absolute paths (this a
feature, not a bug)! These absolute paths give a problem with the normal jar
since class files will stored with the pathname of the directory from which
jar was invoked or you must use the '-C' flag which will take ALL files
from the specified directory and subdirectories into the archive.

A second problem is inner classes. With the normal jar tool, you have to
specify a -C argument since inner classes are unknown to the build tool.
They have not been specified (normally).

Jamjar is different in that sense, since it:

1) parses each found classfile and will extract the packagename to store it
   into the archive, not the name that was given on the command line.
2) during the parsing it will find anonymous and named inner classes and
   will add these to the archive as well, a workaround for the jikes bug
   that anonymous inner classes don't get a proper attribute, is implemented
   (I hope I can get rid of it soon as it degrades performance).
3) It provides command line options that control the path being used for
   files in an archive.

Ah yes, jamjar is a very fast jar... (At ACUNIA, we slashed jar'ing down
from 90 seconds to 5 seconds with jamjar.)

