如何在Java中将byte []转换为字节码的文本表示形式?

时间:2018-10-29 08:01:55

标签: java java-bytecode-asm byte-buddy

我有一个表示byte[]的{​​{1}},现在我想转换成一个表示字节码的字符串(类似于HelloWorld.class)?我想以编程方式执行此操作。

简单地说,我想从

javap -c HelloWorld.classbyte[]代表String

字节码javap -c HelloWorld.class返回到String

注意:所有操作均以编程方式完成,所以我不想通过命令行调用任何内容

可以打开任何知名的标准库,例如asm或bytebuddy。

1 个答案:

答案 0 :(得分:0)

使用ASM,尝试在类的ClassReader表示形式上创建byte[],然后调用ClassReader.accept(),并提供TraceClassVisitor作为ClassVisitor参数。

(未经测试。我们使用了大多数这些组件,但没有完全结合使用。)