Open a Java class file binary to view or edit strings, attributes, methods
and generate readable reports similar to the javap utility. In built verifier
checks changes before saving the file. Easy to use Java Swing GUI.
This is a tool to open Java class file binaries, view their internal
structure, modify portions of it if required and save the class file back.
It also generates readable reports similar to the javap utility.
Easy to use Java Swing GUI. The user interface tries to display as much
detail as possible and tries to present a structure as close as the actual
Java class file structure. At the same time ease of use and class file
consistency while doing modifications is also stressed. For example, when a
method is deleted, the associated constant pool entry will
also be deleted if it is no longer referenced. In built verifier
checks changes before saving the file. This tool has been used by people
learning Java class file internals. This tool has also been used to do quick
modifications in class files when the source code is not available.
Some broad level requirements that this tool is based on are:
- Intuitive Graphical User Interface: The user interface should be
clean and intuitive. Screens should not be crowded. Components like tab
panels should be used wherever appropriate to reduce screen clutter.
- Clear separation for the Novice and Power User: The features
should be so arranged that the novice user can reach the required option
easily, while all features are available for the power user deeper down the
- Cascading changes: The core engine should be able to detect cascading
changes if any and confirm all changes before proceeding.
- Consistency check: Consistency check should be provided. Providing
this check at all stages might not be feasible. To handle such cases the user
should be given control to do this check optionally.
- Facility to switch off consistency check: Why on earth would
somebody want this? Well, to test the Java Virtual Machine itself, to see how
well it stands up to errors in the class file. The Java compiler would never
produce an invalid class file. This is probably the only way to do it.
- Creating fresh classes: It should be possible to create classes
out of scratch using this tool. This will serve as a useful tool for learning
the Java Virtual Machine instructions.
- Facility to examine compiler specific attributes: Some compilers
put attributes specific to their product to facilitate debugging and other
product specific features. For example, the compiler might embed an entry to
the source file browser file or may be a line number attribute in the class
method descriptions. This utility should be able to detect, display and
manipulate such features wherever possible.