我知道Java Scripting API(运行用JavaScript,Groovy等编写的脚本)和几种表达式语言(SpEL,JEXL,JUL)。但是可以用Java编写脚本然后从Java代码调用该脚本吗?
我找到了一些关于通过tools API以编程方式编译Java的信息,但这不像脚本(即上下文不同)。
我想像这个脚本由我的Java代码执行:
int i = 42 + getFoo();
setBar(i);
现在 - 当使用提供getFoo
和setBar
方法的上下文调用时,它应该评估i
并调用该方法。
答案 0 :(得分:2)
尝试BeanShell或Compiler API或javax.script ...
要么必须解释文本输入,要么以某种方式编译为字节码。
答案 1 :(得分:1)
考虑使用exp4j的漂亮API。另请查看https://stackoverflow.com/a/41532702/37020
上的其他选项