package jvm.print; import jvm.ClassFileLoader; import jvm.classfile.ClassFile; import jvm.exception.ReadClassException; public class ClassFilePrinter { ClassFile clzFile; public ClassFilePrinter(ClassFile clzFile) { this.clzFile = clzFile; } public void print() { if (clzFile.getAccessFlag().isPublic()) { 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 poolPrinter = new ConstantPoolPrinter(clzFile.getConstantPool()); poolPrinter.print(); } public static void main(String[] args) { String path = "target/test-classes"; ClassFileLoader loader = new ClassFileLoader(); loader.addClassPath(path); String className = "jvm.EmployeeV1"; ClassFile clzFile = null; try { clzFile = loader.load(className); } catch (ReadClassException e) { e.printStackTrace(); } if (clzFile != null) { ClassFilePrinter printer = new ClassFilePrinter(clzFile); printer.print(); } } }