import org.objectweb.asm.*;
public class MyClassGenerator {
public static void main(String[] args) {
ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_FRAMES);
cw.visit(Opcodes.V1_8, Opcodes.ACC_PUBLIC, "MyClass", null, "java/lang/Object", null);
MethodVisitor mv = cw.visitMethod(Opcodes.ACC_PUBLIC, "<init>", "()V", null, null);
mv.visitCode();
mv.visitVarInsn(Opcodes.ALOAD, 0);
mv.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/lang/Object", "<init>", "()V", false);
mv.visitInsn(Opcodes.RETURN);
mv.visitMaxs(1, 1);
mv.visitEnd();
byte[] bytes = cw.toByteArray();
try {
FileOutputStream fos = new FileOutputStream("MyClass.class");
fos.write(bytes);
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import javassist.*;
public class MyClassGenerator {
public static void main(String[] args) {
try {
ClassPool pool = ClassPool.getDefault();
CtClass ctClass = pool.makeClass("MyClass");
ctClass.setSuperclass(pool.get("java.lang.Object"));
CtConstructor constructor = new CtConstructor(new CtClass[]{}, ctClass);
constructor.setBody("{ }");
ctClass.addConstructor(constructor);
ctClass.writeFile();
e.printStackTrace();
}
}
}