如何在 Java 运行时生成现有类的字节码?

如何在 Java 运行时生成现有类的字节码?


我现有的课程是说 Foo.java


public class Foo {


    public String saySomething() {

        return "Hello World";

    }

}

现在我想生成这个现有类的字节码,Foo.java并可能在另一个 JVM 实例中使用它。请理解我不是在运行时创建类,因为我已经有一个名为Foo.java. 对任何库开放,例如 ASM 或 ByteBuddy 等。


慕的地8271018
浏览 176回答 2
2回答

子衿沉夜

在下面的文章将介绍如何在运行时编译从源代码类,使用ToolProvider.getSystemJavaCompiler()。

慕姐8265434

您不需要为此使用库,任何类文件都只是一个资源,就像可以通过Foo.class.getResource("Foo.class"). 您可以像读取任何其他资源一样打开此资源的流并读取其字节。如果您已经在使用 Byte Buddy,您可以通过以下方式获取字节:ClassFileLocator.ForClassLoader.read(Foo.class)但如果这就是您所需要的,那么使用库将是一种矫枉过正。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java