import jdk.internal.org.objectweb.asm.Opcodes; import org.codehaus.jitescript.JiteClass; public class JitescriptExample { public static void main(String[] args) throws Exception { JiteClass jiteClass = new JiteClass("ExampleClass"); jiteClass.setSuperclass(Object.class); jiteClass.setInterface(Object.class); jiteClass.defineField("name", Opcodes.ACC_PRIVATE, String.class); jiteClass.defineMethod("sayHello", Opcodes.ACC_PUBLIC, void.class, new Class[]{}, new String[]{}, mw -> { mw.visitFieldInsn(Opcodes.GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;"); mw.visitLdcInsn("Hello, Jitescript!"); mw.visitMethodInsn(Opcodes.INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V", false); mw.visitInsn(Opcodes.RETURN); }); byte[] bytecode = jiteClass.toBytes(); jiteClass.writeToFile("ExampleClass.class"); } }


上一篇:
下一篇:
切换中文