Automatic creation of Java archives
PrefaceCommand line versionEclipse plugin
Bernd Eggink, monoped@users.sourceforge.net Project page: SourceForge.net
Preface
Description
Autojar creates jar archives of minimal size from different sources (classes, directories, libraries). Starting from one or more classes, it scans the bytecode recursively for other classes, extracts them from their archives if necessary, and adds them to the output file. The resulting archive contains only classes that are really needed. Thus the size and loading time of applets can be kept low, and applications can be made self-contained.
In a similar way, Autojar can search directories and archives for other resources (like image files), extract them and copy them to the output.

Besides that, Autojar can be used to merge several libraries into one, or to replace single classes in an archive without manually unpacking and re-packing it.

A potential problem is reflection. Autojar doesn't know which classes the program will load during runtime. It can, however, search the bytecode for invocations of Class.forName() and issue warnings. Moreover, if a constant class name is used, Autojar can look up this class and add it automatically.

Autojar works with JRE 1.4.2 or later. It uses classes from the BCEL library (http://jakarta.apache.org/bcel/) and from log4j (http://logging.apache.org/log4j/).

As of version 2.0, Autojar comes in two variants: A command line version, which is controlled by options, and an Eclipse plugin.

History
Version 2.0: Minor bug fixes in Autojar. The Eclipse plugin (V. 1.0) has been almost completely rewritten. The plugin environment is no longer constrained to a single Eclipse project.

Version 2.0pre1: Heavy refactoring in conjunction with the plugin development. Class org.sourceforge.autojar.Ajar now provides a public interface used by both Autojar and the plugin. Logging is done by log4j.
Wildcards '?' and '*' are expanded in class names, so that, for example, all classes of a package can be copied to the output.
War archives are treated like jar files, zip files are extracted and inserted automatically.
First version of an Eclipse plugin.

Version 1.3.1: Minor bug fixes.
With option -v, autojar now outputs a list of archives that are included in the classpath, but never used.
New option -X allows exclusion of file and folder names.

Version 1.3: Project moved to SourceForge.
Some bugs fixed. Non-class files are now handled correctly even if their names contains more than one dot.
Dynamic loading is detected. Options -d and -a added.
Any command line parameter may be of the form @file, not just the first.

Version 1.2.2: Some bugs fixed.
New options: -e, -q, -D.
Wildcards ? and * allowed in search paths.
Improved dependency checking.
Missing files are reported.

Version 1.1: Along with option -p, a search path for non-class files may be supplied (e.g., .gif files). Alternatively option -b ("both") tells autojar to search the class path for non-class files as well.

Bugs
Please report bugs via the SourceForge bug system.
up
Created 2009-03-14 by mopcoge