解释一下,用Java运行生成的字节码?

时间:2009-06-25 19:40:56

标签: java compiler-construction jvm interpreter bytecode

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

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

2 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:1)

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