Страницы

Поиск по вопросам

четверг, 23 января 2020 г.

У меня есть текст кода в String переменной. Можно ли его выполнить?

#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

Комментариев нет:

Отправить комментарий