2010-12-10 8 views
1

Doublons possibles:
using eval in Java
Loading external source code and using them internally (by re-compiling or something)Exécution du code Java de l'intérieur Java

Je veux simuler un 'eval' en Java telle que la fonction prend dans une chaîne (certains code source), le compile, l'exécute et crache la valeur de retour. Je sais que je peux le compiler en utilisant l'API JavaCompiler, mais je ne suis pas certain de la meilleure façon d'exécuter le code comme ceci. Runtime.exec semble trop lourd pour cette tâche ... Je ne veux pas générer un autre processus java chaque fois que j'exécute cette fonction 'eval' juste pour évaluer '30 +20 'ou quelque chose comme ça. Ce serait lent et exigeant en ressources.

Enfin, il doit être en mesure d'exécuter un code java, donc compter sur un évaluateur de langage de script dans Java ne le fera pas (ex. Si l'entrée est plus Java complexe que juste '30 20')

Des alternatives?

+0

Aussi possible dup de [Comment pourrais-je appeler le code Java dynamiquement?] (Http://stackoverflow.com/q/588242/139010) –

Répondre

0

Je ne l'ai jamais fait moi-même, mais vous pouvez écrire votre propre ClassLoader et charger les bytecodes dans la JVM. Il y a un tutorial à ce sujet.