可能重复:
using eval in Java
Loading external source code and using them internally (by re-compiling or something)
我想在Java中模拟一个'eval',使得函数接收一个String(一些源代码),编译它,运行它,然后回吐返回值。
我知道我可以使用JavaCompiler API编译它,但我不确定实际运行代码的最佳方法。 Runtime.exec对于这个任务来说感觉太重了......每次我运行这个'eval'函数只是为了评估'30 +20'之类的东西时,我不想生成另一个java进程。这将是缓慢且资源密集的。
最后,这必须能够运行任何java代码,因此依赖于Java内部的脚本语言评估器将不会这样做(例如,如果输入是比Java更复杂的Java +20')
任何替代方案?