在项目中须要使用java调用javascript脚本,有两种方案,一种是faas,使用开源的openwhisk。另外一种本地运行的方式,使用jdk的nashorn调用javascript,jdk版本为1.8。javascript
可是在编写js脚本的时候使用了ECMAScript6中的新特性const和let。在执行的过程当中报错了。java
原来jdk1.8中的nashorn默认支持的是ECMAScript5.1,而对于ECMAScript6相关特性的支持还不是很完善。可是能够经过jvm参数来开启jdk1.8对部分ECMAScript6新特性的支持。参数格式以下:es6
-Dnashorn.args=--language=es6
看了jdk的文档,从jdk9开始nashorn较好的支持了ECMAScript6。安全
若是有频繁的java调用javascript,而且javascript的脚本较复杂,建议仍是上faas吧。更可控,并且更安全。性能也没有问题。jvm