有没有办法在脚本引擎中包含(或加载)外部脚本,以便外部脚本中定义的所有函数在engine.eval()
方法中都可用?
在我们的应用程序中,我们根据用户输入执行一些 java 脚本代码。当用户请求时,应用程序创建一个 ScriptEngine 实例并根据输入参数执行适当的 javascript 代码。
这里的问题是javascript中有一些重复的功能。考虑一个例子:
场景1:当用户输入为十进制经纬度时计算距离
-> 这里我可以简单地计算并返回距离。
场景2:当用户输入为度-分-秒纬度和经度时计算距离。
-> 这里将度-分-秒输入转换为十进制的经纬度,然后处理与场景1相同。
由于它们是不同的场景,因此计算距离代码是重复的。那么有什么方法可以让我拥有一个包含可重用函数的脚本并在我创建 ScriptEngine 实例时加载它。
注意:我使用 Java 8 和捆绑的 Nashorn JavaScript 引擎。
有什么想法和/或建议吗?