mark贴.
package asm; import org.objectweb.asm.ClassWriter; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; /** * Created with IntelliJ IDEA. * User: zhenghui * Date: 13-11-4 * Time: 下午8:33 */ public class AsmHelloWorld extends ClassLoader{ public static void main(String[] args) throws InvocationTargetException, IllegalAccessException { ClassWriter classWriter = new ClassWriter(0); classWriter.visit(Opcodes.V1_6,Opcodes.ACC_PUBLIC,"Example",null,"java/lang/Object",null); //创建默认构造器 MethodVisitor methodVisitor = classWriter.visitMethod(Opcodes.ACC_PUBLIC,"<init>","()V",null,null); methodVisitor.visitVarInsn(Opcodes.ALOAD,0); methodVisitor.visitMethodInsn(Opcodes.INVOKESPECIAL,"java/lang/Object","<init>","()V"); methodVisitor.visitInsn(Opcodes.RETURN); methodVisitor.visitMaxs(1,1); methodVisitor.visitEnd(); methodVisitor = classWriter.visitMethod(Opcodes.ACC_PUBLIC + Opcodes.ACC_STATIC,"main","([Ljava/lang/String;)V",null,null); // 调用System类的PrintStream类的out methodVisitor.visitFieldInsn(Opcodes.GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;"); methodVisitor.visitLdcInsn("Hello World!"); methodVisitor.visitMethodInsn(Opcodes.INVOKEVIRTUAL,"java/io/PrintStream","println","(Ljava/lang/String;)V"); methodVisitor.visitInsn(Opcodes.RETURN); methodVisitor.visitMaxs(2,2); byte[] code = classWriter.toByteArray(); AsmHelloWorld classLoader = new AsmHelloWorld(); Class clazz = classLoader.defineClass("Example",code,0,code.length); Method method = clazz.getMethods()[0]; method.invoke(null,new Object[]{null}); } }
相关推荐
asm-util-1.3.4.jar, asm-util-1.3.5.jar, asm-util-1.4.1.jar, asm-util-1.4.3.jar, asm-util-1.5.1.jar, asm-util-1.5.2.jar, asm-util-1.5.3.jar, asm-util-2.0.jar, asm-util-2.1.jar, asm-util-2.2.1-sources....
asm-all-5.2.jar asm-all-5.2.jar asm-all-5.2.jar asm-all-5.2.jar asm-all-5.2.jar asm-all-5.2.jar asm-all-5.2.jar asm-all-5.2.jar asm-all-5.2.jar asm-all-5.2.jar asm-all-5.2.jar asm-all-5.2.jar asm-all-...
《深入解析Spring ASM库:org.springframework.asm-3.0.5.RELEASE.jar》 Spring框架是Java开发领域中不可或缺的一部分,而org.springframework.asm-3.0.5.RELEASE.jar是Spring框架中的一个关键组件,主要涉及到字节...
资源包含asm-all-3.0.jar等jar包,可以解决程序中因asm版本引起的兼容性错误。其他相关的jar如下: asm-all-3.0.jar asm-2.2.3.jar asm.jar asm-attrs.jar asm-commons-2.2.3.jar asm-util-2.2.3.jar
想说找你不容易,asm-all-5.0.jar
asm-commons-3.3.1.jar
【asm.acp】和【asm.stx】是EditPlus为了增强对汇编语言支持的插件文件。`.acp`文件代表“语法高亮配置文件”,它定义了特定语言(在这里是汇编语言)的语法色彩规则,使代码在编辑器中以不同颜色显示,便于理解和...
asm-all-3.2.jar 全集满足spring aop 开发过程中遇到的问题
标题中的"asm-2.2.1-sources.jar.zip"是一个包含ASM库源代码的压缩文件,版本号为2.2.1。ASM是一个Java字节码操控和分析框架,常用于动态代理、代码生成以及Java字节码的深度分析。这个文件可能是为了帮助开发者理解...
kmod-oracleasm-2.0.8-8.el7.x86_64.rpm oracleasm-centos7安装包
标题中的"asm-all-4.0.jar.zip"指的是一个压缩包文件,该文件包含了ASM库的一个集合,版本为4.0。ASM是一个Java字节码操控和分析框架,主要用于动态生成类或者增强已有类的功能。ASM库广泛应用于字节码级别的编程,...
org.springframework.asm-sources-3.0.5.release.jar
asm-util-6.0.jar 编写工具测试类中用到,配合asm-6.0.jar使用
oracleasm-2.6.18-194.32.1.el5-2.0.5-1.el5.x86_64.rpm
asm-util-2.2.2.jar asm-util-2.2.2.jar asm-util-2.2.2.jar asm-util-2.2.2.jar asm-util-2.2.2.jar asm-util-2.2.2.jar
oracleasm-2.6.18-194.el5xen-2.0.5-1.el5.x86_64.rpm
kmod-oracleasm-2.0.8-16.el6_10.x86_64.rpm
asm-1.3.3.jar, asm-1.3.4.jar, asm-1.3.5.jar, asm-1.4.1.jar, asm-1.4.2.jar, asm-1.4.3.jar, asm-1.4.jar, asm-1.5.1.jar, asm-1.5.2.jar, asm-1.5.3.jar, asm-2.0.jar, asm-2.1.jar, asm-2.2.1-sources.jar, asm...
ASM是一个强大的Java字节码操控和分析框架,它可以直接生成和修改Java类和注解的字节码。这个框架主要用于动态代理、代码分析以及优化等场景。在Java开发中,当我们需要在运行时生成或者修改类的行为时,ASM提供了一...
kmod-oracleasm-2.0.8-13.el6_8.x86_64.rpm oracleasmlib-2.0.4-1.el6.x86_64.rpm oracleasm-support-2.1.8-1.el6.x86_64.rpm