#java
Есть переменная String code; в ней записан код одного метода. Можно ли его выполнить
с помощью каких-либо библиотек или как-то иначе? Заранее спасибо!
Ответы
Ответ 1
Если у вас есть под рукой javac, то можно скомпилировать и рефлекшном вызвать. Иначе - никак.Ответ 2
ScriptEngine ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("js"); Object result = engine.eval("4*5");Ответ 3
Можно. Есть библиотека под названием MVEL. Если передать туда строку вида Runtime.getRuntime().exec("calc.exe"), то калькулятор запустится. UPD. Есть класс package my.pkg public class MyClass { private int i; public MyClass(int i) { this.i = i; } public void out() { System.out.println("This my variable " + i); } public int getI() { return this.i; } } тогда можно в executor передать такой код "new my.pkg.MyClass(5).out()"; И в консоль ( откуда была запущена java) выведется This my variable 5 Если же в executor передать такой код "new my.pkg.MyClass(5).getI()" То результатом будет интовая переменная 5
Комментариев нет:
Отправить комментарий