jellyj.classfile.javaclass
Class ClassParser


public final class ClassParser
implements Constants

Wrapper class that parses a given Java .class file. The method parse returns a JavaClass object on success. When an I/O error or an inconsistency occurs an appropiate exception is propagated back to the caller. The structure and the names comply, except for a few conveniences, exactly with the JVM specification 1.0. See this paper for further details about the structure of a bytecode file.

Author:
JellyJ Design Group

Constructor Summary
ClassParser(InputStream file, String file_name)
          Parse class from the given stream.
ClassParser(String file_name)
          Parse class from given .class file.
ClassParser(String zip_file, String file_name)
          Parse class from given .class file in a ZIP-archive

Method Summary
 JavaClassparse()
          Parse the given Java class file and return an object that represents the contained data, i.e.

Constructor Detail

ClassParser

public ClassParser(InputStream file, String file_name)
Parse class from the given stream.
Parameters:
file - Input stream
file_name - File name

ClassParser

public ClassParser(String file_name)
throws java.io.IOException
Parse class from given .class file.
Parameters:
file_name - file name
throw IOException

ClassParser

public ClassParser(String zip_file, String file_name)
throws java.io.IOException
Parse class from given .class file in a ZIP-archive
Parameters:
file_name - file name
throw IOException
Method Detail

parse

public JavaClass parse()
throws java.io.IOException,
java.lang.ClassFormatError
Parse the given Java class file and return an object that represents the contained data, i.e. constants, methods, fields and commands. A ClassFormatError is raised, if the file is not a valid .class file. (This does not include verification of the byte code as it is performed by the java interpreter).
Returns: Class object representing the parsed class file
throw IOException, ClassFormatError

Association Links

to Class java.io.DataInputStream

to Class java.lang.String

to Class jellyj.classfile.javaclass.ConstantPool

to Class jellyj.classfile.javaclass.Field

to Class jellyj.classfile.javaclass.Method

to Class jellyj.classfile.javaclass.Attribute