【工具】ScriptEngine--Java动态执行JS Javascript脚本(可调用java的方法) 增加代码灵活性 适合复杂业务经常变动
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.Invocable;
public class ScriptEngineExample {
public static void main(String[] args) {
// 创建一个ScriptEngineManager实例
ScriptEngineManager manager = new ScriptEngineManager();
// 获取JavaScript引擎
ScriptEngine engine = manager.getEngineByName("nashorn");
try {
// 执行JavaScript代码
engine.eval("print('Hello, World!');");
// 如果需要从Java调用JavaScript中的函数,可以这样做:
Invocable invocable = (Invocable) engine;
// 调用JavaScript函数
Object result = invocable.invokeFunction("javaFunction", "Hello, JavaScript!");
// 打印JavaScript函数返回的结果
System.out.println("Result from JavaScript: " + result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
在这个例子中,我们首先创建了一个ScriptEngineManager
实例,然后通过getEngineByName("nashorn")
获取了JavaScript引擎。接着,我们通过eval
方法执行了一段简单的JavaScript代码,输出了"Hello, World!"。最后,我们演示了如何从Java调用JavaScript中定义的函数,并打印了该函数的返回结果。这个例子展示了如何使用Java的javax.script
包来动态执行JavaScript代码,并实现Java和JavaScript之间的交互。
评论已关闭