Classfile Reader & Writer reviewDownload
This package makes it easy to read and write java classfiles
This package makes it easy to read and write java classfiles. It doesn't, however, provide any help with displaying the contents of a classfile to the user (unless you count debug output), or disassembling the bytecodes.
This code snippet will read in a classfile and write it back out to a different file.
InputStream is = new FileInputStream("Foo.class");
OutputStream os = new FileOutputStream("FooCopy.class");
ClassInfo classInfo = new ClassInfo();
new ClassFileReader().read(is, classInfo);
classInfo.setName("FooCopy"); // Java requires the class name to match the file name
new ClassFileWriter().write(classInfo, os);
The package can read "obfuscated" classfiles, like those generated by Crema, but it can't write them. Obfuscated classfiles have invalid data in them and the only reason they work is because most VMs ignore the data that's invalid (attributes like SourceFile, LineNumberTable, and LocalVariableTable). If a ClassFileReader encounters invalid data, it just ignores it.
Classfile Reader & Writer keywords