blob: a16a501829d39fefa13e330eb7f2a41a54b1bf17 [file] [log] [blame]
This directory contains the FastJar package, which is not part of GCC but
shipped with GCC as convenience.
FastJar 0.90
FastJar is an attempt at creating a feature-for-feature copy of Sun's JDK's
'jar' command. Sun's jar (or Blackdown's for that matter) is written entirely
in Java which makes it dog slow. Since FastJar is written in C, it can create
the same .jar file as Sun's tool in a fraction of the time. On my system,
Sun's jar takes 50 seconds to create a 10MB jar file, while FastJar only takes
a little over a second.
The reason I wrote fastjar is that building .jar files is a regular process
of the build where I work. The way we have it setup, you have to re-create
the .jar file everytime you want to test it out, which is about every 5 minutes
when I'm busy coding. The .jar file wasn't -that- big, but it did take about
30 seconds to be made, and watching all the garbage collection messages was
pretty irritating as well. I probably wasted a half-hour a day watching
Sun's jar tool chug along. By writing the program in C, I spend much less time
banging my head against the monitor waiting for the build to finish. Yay!
FastJar has been tested on Solaris and Linux 2.2.x systems and nothing else.
It should compile/run without any problems on either system, provided you have
zlib installed.
Please mail any bug reports to
If you use FastJar and want me to add the rest of the features, send me mail
( I'll be much more likely to put more work into this
if I know other people find it useful other than me.
As always, this not being a final release, bugs may exist. I test each
release pretty well, but I can always miss things...
Compression will slow things down quite a bit. A 10MB jar file takes about
1 second on my machine without compression, and 9 seconds with it. If you
want fastjar to be fast, use the -0 (zero, not O) flag to turn off compression.
Supported flags:
-c | create a new archive
-v | verbose output
-f | specify archive file name
-m | specify existing manifest file
-M | don't create manifest
-0 | store only
-C | change to dir
-t | list contents
-x | extract contents
Unsupported flags:
-u | update exisiting archive
If you use the "unsupported" flags, nothing bad will happen, but then again
nothing will happen at all.
Unsupported features (in this release):
* updating
* full manifest support (?)
Order or features for the future:
* archive updating
* full manifest support
* filtering
* dependency checking