0 0

如何获取动态的class的字节码10

目前动态加载生成class已很普遍,例如jdk的proxy以及cglib动态修改字节,不过,这样就造成了一个问题,最终生成的class的到底是什么样呢?其中针对jdk的动态生成,可以利用ProxyGenerator.generateProxyClass,获取一个式样的例子;针对cglib需要设置DebuggingClassWriter.DEBUG_LOCATION_PROPERTY属性,据说可以把内存里的类生成到文件里去。不知道有没有什么方法,可以获取文件或内存,普通或泛型的类的字节输出到指定目录下,然后可利用反编译工具查阅源码。
目前尝试的解决方案,主要是利用ClassLoader,
Test.class.getResourceAsStream("Test.class")
利用普通对象自身的类加载器可以获取到源码,但是动态的位于内存里的类就无法获取到。
不知道有没有其他的方法,多谢!

问题补充:偶就是用asm,动态的class还是一样无法获取字节码

问题补充:ClassReader classReader = new ClassReader(Test.class.getResourceAsStream("Test.class"));asm示例,本质还是用ClassLoader
2012年5月31日 15:17

2个答案 按时间排序 按投票排序

0 0

拿到应用程序的classloader,之后就可以通过类名拿到了呀,不过动态生成的类名都比较奇怪,我记得cglib中是可以通过设置参数来实现将生成的字节码输出的,具体你看看源代码吧

2012年6月23日 15:02
0 0

这有开源的工具,ASM和javassist都可以做这个事情,需要代码可以发消息

2012年5月31日 16:26

相关推荐

    修改class字节码需要的工具.zip

    这个压缩包`修改class字节码需要的工具.zip`提供了几种常用的工具,帮助开发者实现这一目标。以下是这些工具的详细介绍以及如何使用它们。 1. **Luyten 0.5.4**: 这是一个跨平台的Java字节码查看器和编辑器,可以...

    class字节码转java代码工具

    标题提到的“class字节码转java代码工具”就是这样一个实用程序,它能将Java字节码转换回源代码格式,简化了开发者的工作流程,尤其在没有原始源代码的情况下。 Java字节码是Java虚拟机(JVM)运行的中间语言,当...

    ASM操作字节码,动态生成Java类class文件

    5. **Opcode**: ASM提供了一系列的常量,表示Java字节码的指令,如IADD(加法)、GETSTATIC(获取静态字段)等。 在模拟Spring的AOP实现原理时,我们可以用ASM创建一个代理类,这个代理类会在目标方法调用前后插入...

    Gradle Plugin 修改其class 字节码的Demo

    本文将深入探讨如何使用Gradle插件来修改class字节码,这在进行代码混淆、性能优化或者实现特定功能时非常有用。我们将以"Gradle Plugin 修改其class 字节码的Demo"为例,探讨这一技术。 首先,我们需要了解什么是...

    字节码实战包含class,字节码.zip

    当我们使用javac命令编译Java源代码时,Java编译器会生成.class文件,每个文件包含一个或多个类或接口的字节码。字节码文件结构包括魔术数字、版本信息、常量池、访问标志、类索引、父类索引、接口索引集合、字段表...

    Javassist 修改class字节码

    Javassist 提供了java类库,用于方便操控Java字节码。功能包括:运行时创建java class,修改class。与其他同类工具(asm等)不同的是,Javassist提供了两个层面的API: 1.java代码层 2.字节码层 通过java代码层,...

    基于Class字节码透视java动态代理本质(4)

    基于Class字节码透视java动态代理本质(4)

    jclasslib 修改class字节码工具

    `jclasslib` 是一款强大的Java字节码查看和编辑工具,尤其适合Java开发者在处理已编译的`.class`文件时使用。它允许我们深入理解类文件的结构,甚至对字节码进行修改,这对于调试、优化、学习Java虚拟机(JVM)的...

    借助jclasslib与javassist修改java class字节码

    ### 借助jclasslib与javassist修改Java class字节码 #### 一、引言 在软件开发过程中,有时我们可能面临一种情况:即需要对已经编译好的`.class`文件进行修改,但手中并没有对应的源代码。这种情况下,我们可以...

    class字节码反编译工具

    class字节码反编译工具,好用,class字节码反编译工具,好用

    java字节码文件查看工具,查看class文件

    Java字节码文件查看工具,如JD-GUI,是开发者们深入理解Java应用程序内部机制的重要辅助工具。这类工具能够帮助我们查看并分析.class文件,这些文件是Java源代码经过编译后的二进制形式,包含了运行时所需的所有指令...

    基于Class字节码透视java动态代理本质

    基于Class字节码透视java动态代理本质

    LengendOfDong#Blog#mac下查看Class文件字节码1

    mac下查看Class文件字节码1.使用vi命令的方式vi -b 文件名进入后输入支持鼠标选中高亮,很好用,用来学习Java字节码很实用。

    Java Classloading Mechanism : ClassLoader & ASM & 动态字节码增强

    深入理解这一机制有助于开发者优化程序性能、实现自定义加载逻辑以及进行动态字节码增强。在本篇中,我们将详细探讨ClassLoader的工作原理、ASM库的使用以及如何利用这些工具进行动态字节码增强。 首先,我们来看...

    Java反编译工具(反编译class字节码文件)

    自己一直使用的一款小工具:Java反编译工具。 特点:小巧、绿色、易使用 作用:提高开发人员解决问题的效率,请大家按需下载。

    从一个class文件深入理解Java字节码结构

    通过深入了解这些结构,开发者可以更好地理解Java字节码的工作原理,从而优化代码执行效率,调试程序,甚至实现字节码级别的动态修改和插桩技术。这对于性能调优、AOP(面向切面编程)以及理解JVM的工作方式至关重要...

    class运行器v6(可以运行java字节码文件的工具 含代码)

    标题中的“class运行器v6”是一个用于执行Java字节码文件的应用程序,它允许用户在没有完整Java环境的情况下运行单个.class文件。这个工具可能是由开发者为了方便测试或教学目的而创建的,特别是对于那些不熟悉或者...

    JAVA字节码操作库 BCEL

    3. **性能监控**:在字节码层面插入监控代码,以获取更精确的性能数据。 4. **代码混淆**:通过改变字节码结构来保护源代码不被轻易逆向工程。 总之,BCEL作为Java字节码操作库,提供了强大的功能,是开发者深入...

    基于Class字节码透视java动态代理本质(1)

    基于Class字节码透视java动态代理本质(1)

    基于Class字节码透视java动态代理本质(2)

    基于Class字节码透视java动态代理本质(2)

Global site tag (gtag.js) - Google Analytics