6

JavaでREPLを使用しておもちゃのインタープリターを作成しています。AST を解釈して代わりに実行する代わりに、言語からバイトコードを生成して実行したいと思います。

私の Java は少し錆びているので、生成されたバイトコードを JVM でオンザフライで実行することは可能ですか?

4

2 に答える 2

7

バイトコードを Class オブジェクトに変換する java.lang.Classloader.defineClass() を使用できます。結果の Class オブジェクトで newInstance() を呼び出すことができます。

于 2009-06-25T19:43:57.330 に答える
1

Javaスニペットをバイトコードにコンパイルし、それらをクラス内のメソッドとして定義して呼び出すことができるスニペットコンパイラを含むJavassistを見てください。

于 2009-06-25T22:25:53.633 に答える