package com.xiaoleilu.hutool.script; import javax.script.Compilable; import javax.script.CompiledScript; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; /** * 脚本工具类 * @author Looly * */ public final class ScriptUtil { private ScriptUtil(){} /** * 获得 {@link ScriptEngine} 实例 * @param name 脚本名称 * @return {@link ScriptEngine} 实例 */ public static ScriptEngine getScript(String name){ return new ScriptEngineManager().getEngineByName(name); } /** * 获得 Javascript引擎 {@link JavaScriptEngine} * @return {@link JavaScriptEngine} */ public static JavaScriptEngine getJavaScriptEngine(){ return new JavaScriptEngine(); } /** * 编译脚本 * @param engine 引擎 * @param script 脚本内容 * @return {@link CompiledScript} * @throws ScriptException */ public static CompiledScript compile(ScriptEngine engine, String script) throws ScriptException{ if(engine instanceof Compilable){ Compilable compEngine = (Compilable)engine; return compEngine.compile(script); } return null; } }