从Java源代码调用用Java编写的脚本

时间:2017-09-19 14:42:36

标签: java java-8

我知道Java Scripting API(运行用JavaScript,Groovy等编写的脚本)和几种表达式语言(SpEL,JEXL,JUL)。但是可以用Java编写脚本然后从Java代码调用该脚本吗?

我找到了一些关于通过tools API以编程方式编译Java的信息,但这不像脚本(即上下文不同)。

我想像这个脚本由我的Java代码执行:

int i = 42 + getFoo();
setBar(i);

现在 - 当使用提供getFoosetBar方法的上下文调用时,它应该评估i并调用该方法。

2 个答案:

答案 0 :(得分:2)

尝试BeanShellCompiler APIjavax.script ...

要么必须解释文本输入,要么以某种方式编译为字节码。

答案 1 :(得分:1)

考虑使用exp4j的漂亮API。另请查看https://stackoverflow.com/a/41532702/37020

上的其他选项