package com.github.ipk2015.coding2017.minijvm.print;
import com.github.ipk2015.coding2017.minijvm.clz.ClassFile;
import com.github.ipk2015.coding2017.minijvm.loader.ClassFileLoader;
public class ClassFilePrinter {
ClassFile clzFile = null;
public ClassFilePrinter(ClassFile clzFile){
this.clzFile = clzFile;
}
public void print(){
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();
}
public static void main(String[] args){
// String path = "C:\\Users\\liuxin\\git\\coding2017\\liuxin\\mini-jvm\\bin";
String path = "E:\\javaImprove\\git\\group24\\121111914\\src\\com\\github\\ipk2015\\coding2017\\minijvm\\bin";
ClassFileLoader loader = new ClassFileLoader();
loader.addClassPath(path);
// String className = "com.coderising.jvm.test.EmployeeV1";
String className = "EmployeeV1";
ClassFile clzFile = loader.loadClass(className);
ClassFilePrinter printer = new ClassFilePrinter(clzFile);
printer.print();
}
}