package minijvm.print; import java.io.File; import minijvm.clz.ClassFile; import minijvm.constant.ConstantInfo.Visitor; import minijvm.loader.ClassFileLoader; public class ClassFilePrinter { ClassFile clzFile = null; public ClassFilePrinter(ClassFile clzFile) { this.clzFile = clzFile; } public void print(Visitor visitor) { if (clzFile.getAccessFlag().isPublicClass()) { System.out.println("Access flag : public "); } System.out.println("Class Name:" + clzFile.getClassName()); System.out.println("Super Class Name:" + clzFile.getSuperClassName()); System.out.println("minor version:" + clzFile.getMinorVersion()); System.out.println("major version:" + clzFile.getMajorVersion()); ConstantPoolPrinter cnstPoolPrinter = new ConstantPoolPrinter(clzFile.getConstantPool()); cnstPoolPrinter.print(visitor); } public static void main(String[] args) throws ClassNotFoundException { String path = new File(".", "target\\test-classes").getAbsolutePath(); ClassFileLoader loader = new ClassFileLoader(); loader.addClassPath(path); String className = "minijvm.loader.EmployeeV1"; ClassFile clzFile = loader.loadClass(className); ClassFilePrinter printer = new ClassFilePrinter(clzFile); Visitor visitor = new JavapPrintVisitor(); printer.print(visitor); } }