我正在制作一个工具来动态显示运行java类的源代码.我需要一个工具来帮助我从类对象动态反编译到源代码的字符串.我知道一些反编译工具,如Jad,DJ反编译器可以反编译.class文件,但我希望工具可以:
Class> c = ..; // get from runtime environment
String sourcecode = **Decompiletool**.decompileClassObject(c);
return sourcecode;
最佳答案
我不知道任何可以像这样使用的反编译器.
实际上,在一般情况下,不可能实现这样工作的反编译器:
>班级<?>从运行时获得的对象不提供任何获取字节码的方法.
>为了获取字节码,您需要重做类加载器在从类路径中找到“.class”文件时所执行的操作.
>我认为没有办法找出正在使用的类加载器…如果包含动态实例化类加载器的可能性. (此类类加载器在(例如)Web容器中是常规做法.)
>在一般情况下,类加载器将以您无法重现的方式执行此操作…无需逆向工程并将相同的逻辑硬编码到您的反编译器适配器代码中.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。