Jarminator v0.15

Jarminator is simple java JARs examinator. Jarminator helps browsing the content of multiple JARs individually or explores all their packages joined together. Both JAR files and folders may be specified for the examination. For a folder, Jarminator will search for all JARs located under it (including subfolders) and include them all for the examination. Finally, Jarminator may filter JARs content, what helps in locating classes.

Top 25% Jarminator is freeware for use and it is distributed as open-source, under the terms of BSD license. If you find it useful, let me know. Jarminator has been rated as Top 25% at jars.com, and few times as download of the week on various java sites.

Download & Installation

download Download from SourceForge (distribution & source). Builded on JDK4. Installation is very simple: just unzip the distribution archive and run the program.

Usage

Jarminator by default starts in the GUI mode. Just simply run jarminator.bat and, after few moments, Jarminators main screen will popup (window has been resized before image capture):

no1

Source input field is where you specify what JARs will be examined. More than one JAR file may be specified, separated by ; sign. Also it is possible to specify path from where all JAR will be included for examination. For example, the following source is valid:
d:\Jarminator\dist\jarminator.jar;d:\java\ant

Browse helps in locating JARs and paths. After all JARs and paths are specified, a click on Load button will load them into the Jarminator. Depending on JARs number and size, loading may last for a while. However, loading can be interrupted any time.

When all JARs are loaded Jarminator will finally be ready for the examination. There are two different views of loaded jars: Jars and Classes.

Jars view shows the content of each loaded JAR independently. Classes, on the contrary, shows all packages joined together, as they are all part of one big jar file. This may be useful for finding a JAR in which class with known package is contained in.

no2   no3

For each class its full path (i.e. package) and contained JAR is show in the status bar.

Filter field narrows down the JARs content. After click on the Apply button, views will show only those files from JARs which names contains provided filter string. For example, by specifying '.class' for the filter, only classes will be included in the view and not other files (manifests, graphics, etc.). Filter may be removed by applying of the empty string. Filtering may be useful for quick locating of some class. Note: packages are separated by '/' sign.

Duplicates

Jarminator is aware of duplicated classes and files. Those are the files from different JARs but with the same class path. Jarminator will show all duplicates in Classes view but in different, gray color:

no4

Parameters

Source and/or filter may be specified during start of the Jarminator as its parameters. For example, the following command:
jarminator.bat d:\Jarminator\dist\jarminator.jar;d:\java\ant
will automatically load provided source after the start up, and the following command:
jarminator.bat d:\Jarminator\dist\jarminator.jar;d:\java\ant .class
will load provided source and apply the filter automatically after the start up.

Console mode

Jarminator may be run in the console mode by specifying the '-c' parameter. For example, the following command:
jarminator_c.bat -c d:\Jarminator\dist\jarminator.jar;d:\java\ant .class
will print out to console all filtered content of provided source.

Thanx

Agaton - for finding filter case bug.
Sonja - for jdk 1.3 bug that have lead to new, improved version.

TO-DO

+ Add optional regular expression filter.
+ Show just duplicates.
+ DoubleStringTreeNode should be removed in favor of custom tree node object.
+ Some more refactoring.