【发布时间】:2010-12-10 12:15:39
【问题描述】:
可能的重复:
using eval in Java
Loading external source code and using them internally (by re-compiling or something)
我想在 Java 中模拟一个“eval”,以便该函数接受一个字符串(一些源代码),编译它,运行它,然后返回返回值。
我知道我可以使用 JavaCompiler API 编译它,但我不确定实际运行这样的代码的最佳方式。 Runtime.exec 觉得这个任务太重了……我不想每次运行这个“eval”函数时都生成另一个 java 进程,只是为了评估“30+20”之类的。这将是缓慢且资源密集型的。
最后,它必须能够运行任何 java 代码,因此依赖 Java 内部的脚本语言评估器是行不通的(例如,如果输入是比 '30+20' 更复杂的 Java)
还有其他选择吗?
【问题讨论】: