直接对脚本求值
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
脚本化的 Hello,world 版本:
import javax.script.*;
public class HelloScript {
public static void main(String args[]){
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
try {
engine.eval("print('Hello, world');");
} catch (ScriptException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
首先,创建 ScriptEngineManager 对象,然后根据引擎名称”javascript”来获取一个 JavaScript 引擎的实例,然后调用引擎实例的 eval 方法。应该注意的是,print 函数是 rhino 引擎内建的全局函数,在浏览器上的 JS 环境中是无法执行的。
eval 方法可以接受一个字符串,然后直接求值,也可以接受一个 Reader 对象,将一 个脚本文件完整求值。另外,eval 还接受第二个参数 ,以指定运行时的上下文对象,如果 不指定,则按照全局上下文来求值。
在线练习
{$ activeFileHint $}