Class Packer GUI Shell r1.0
Copyright (C) 1999,2000 Cristiano Sadun - crsadun@tin.it
Portions of this program are free software; you can redistribute them and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

1. Purpose

This graphical shell to ClassPacker allows class packing by simply dragging a .class file into a GUI pane on the screen: the shell sets up the proper command line and invokes class packer, using the JVM on path and a specified class path.

2. Requirements

Since Swing is used, Java 1.2 (aka Java 2) is required. The shell requires version 1.4 of ClassPacker, or higher. It will, however, work with older versions, provided you do not turn on checkbox options which refer to cmdline options not existing on the version you're using.

The shell does not make use of native code, therefore is fully portable. It makes use, tough, of java drag-and-drop support, which may sometimes be shacky on older java 1.2 implementations (notably, 1.2beta on Sun Solaris™), so check it out.

Alas, not all the command line options of ClassPacker are available in this version. This first version is also not much configurable to adapt to your environment.

Here's a correspondence table of GUI checkboxes and cmdline options:

Correspondence between GUI and command line options

GUI optionCommand line option
Append to existing file-append
Ask file name on drag-ask
Create manifest file-nmf (if unchecked)
Generate Class.forName() report-fnr
Include Java library classes-ij
Include Java extension classes-ijx
Use .zip extension-zip

3. Installation

See downloading instructions from the main page..

The shell makes use of the JAVA_HOME o/s environment definition to locate the JVM to use to run ClassPacker. If JAVA_HOME is not defined in your o/s environment, the the plain "java" name will be used - which means that you must have a java excutable in your PATH.

4. Usage

Just run the class com.deltax.cpacker.gui.ClassPacker (please note the gui), provided you have the core application class com.deltax.cpacker.ClassPacker in your classpath.

  • If you've installed the full 2.0 package, they both are in the same jarfile cpacker2.0.jar, so a cmdline like

                java -cp c:\cpacker\cpacker.jar com.deltax.util.cpacker.gui.ClassPacker
    
    will do.

  • If you've installed only the gui shell, both cpacker.jar and cpacker_sh.jar must be in classpath. Therefore your cmdline is (at least)

                java -cp c:\cpacker\cpacker.jar;c:\cpacker\cpacker_sh.jar com.deltax.util.cpacker.gui.ClassPacker
    

You will probably will to create a Win32 shortcut or an Unix alias/shell script to avoid typing all that all the time.

Note that - unlike the cmdline application - the GUI shell allows runtime redefinition of the classpath - so you don't need to specify the class path to the classes that you want to pack at launch time. You will need, however, to do that at runtime.

Here's a screenshot of the sheel once run (with the Win32 look&feel):

ClassPacker Shell screenshot

Usage is very simple:

4.1 Packing classes

  • Select the options you like; refer to the correspondence table above for correspondence between GUI options and cmdline switches.
  • Open a file system browser (typically, Explorer on Win32 and some similar utility under X), and drag a .class file in the big yellow pane on the left.
  • Drop the file: the shell will read the class file looking for the class name; then it will invoke the ClassPacker core application to pack the class.
    Packing occurs in the directory from where you launched the shell.

Depending on the options selected, the core application will ask you for a file name or for permission to overwrite an existing file.

4.2 Class path used for packing

When the core ClassPacker is invoked, the classpath displayed in the Text Box on the top is passed along. If the class file you drag resides in a package/directory which is not accessible from that class path, the shell will be able to find the fully qualified name of the class (since that requires just inspecting the .class file), but will be unable to resolve it.

To change the class path, just type in the additional entries that you may need, and press ENTER. The log panel on the bottom will inform you that the new classpath has been set.

5. Download

See downloading instructions from the main page..


Copyright © 1999,2000 Cristiano Sadun. Portions of this software/documentation are under GPL, portions under a non-commercial free usage license.