【问题标题】:Interpret something, and run the generated bytecode in Java?解释一些东西,并在 Java 中运行生成的字节码?
【发布时间】:2009-06-25 19:40:56
【问题描述】:

我正在用 Java 编写一个带有 REPL 的玩具解释器。我想从该语言生成字节码并运行它,而不是解释 AST 并运行它。

由于我的 Java 有点生疏,是否可以在 JVM 上运行生成的字节码?

【问题讨论】:

    标签: java compiler-construction jvm interpreter bytecode


    【解决方案1】:

    您可以使用 java.lang.Classloader.defineClass(),它将字节码转换为 Class 对象。您可以在生成的 Class 对象上调用 newInstance(),然后继续。

    【讨论】:

      【解决方案2】:

      看看 Javassist,它包含一个 sn-p 编译器,允许您将 Java sn-ps 编译为字节码,并将它们定义为类中的方法,然后您可以调用它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多