虽然这两门语言听起来就像个亲戚,但实际上他两是八竿子打不着的关系,一个是面向对象高级语言,另一个是脚本语言,他们两使用场景都有非常大的区别,Java常用于服务器后端开发,JavaScript常用于前端开发(当然了用NodeJS开发后端也是可以的)。
那么有没有方法让这两种语言写到一起呢?答案是可以的。Java中不需要加入第三方依赖库就能调用几种脚本语言,如JavaScript、Groovy、R等等。下面举几个例子看看:
对了OracleJDK15开始去掉了下面的调用JavaScript的方法
首先第一步、获取脚本引擎
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
然后用脚本引擎执行JavaScript代码
Object result = engine.eval("var text = '快看我,我是JavaScript代码'; text");
System.out.println(result);
运行多行脚本
engine.eval("var a = 13");
engine.eval("var b = 21");
System.out.println(engine.eval("a+b"));
脚本获取Java变量/对象
int javaNumber = 100;
engine.put("j",javaNumber);
engine.eval("var s = 50");
System.out.println(engine.eval("s+j"));
Java获取脚本变量
engine.eval("var s = 300");
int s = (int)engine.get("s");
int j = 200;
System.out.println(s+j);
Java运行脚本方法
engine.eval("function sum(num1,num2){return num1+num2}");
double result = (double)((Invocable)engine).invokeFunction("sum",200,30);
System.out.println(result);
好了今天就到这儿吧~