最近项目需要,利用java执行动态语言,首先想到的是支持js。
1.从打印Hello World开始
Java8 引入Nashorn实现javascript调用,比如使用java运行一段js实现“Hello World”打印:
package com.iflytek.research.jsdemo;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class NashornTest {
public static void main(String[] args) {
// 加载nashorn执行引擎
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
try {
engine.eval("var str = 'Hello World';"
+ "print(str);");
} catch (ScriptException e) {
e.printStackTrace();
}
}
}
上述代码成功打印了“Hello World”, 现实场景中,script代码大多来自文件,编辑test.js
var str = 'Hello World';
print(str);
将