Domanda

Sto scrivendo un interprete di giocattoli con un REPL in Java. Vorrei generare il bytecode dalla lingua ed eseguirlo, invece di interpretare un AST ed eseguirlo invece.

Dato che il mio Java è un po 'arrugginito, è possibile eseguire al volo il bytecode generato su JVM?

È stato utile?

Soluzione

Puoi usare java.lang.Classloader.defineClass (), che trasforma bytecode in un oggetto Class. Puoi chiamare newInstance () sull'oggetto Class risultante e il gioco è fatto.

Altri suggerimenti

Dai un'occhiata a Javassist che contiene un compilatore di snippet che ti consente di compilare snippet Java in bytecode e definirli come metodo in una classe che puoi quindi invocare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top