jdk1.8中nashorn不支持ECMAScript6的問題

背景

在項目中須要使用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

相關文章
相關標籤/搜索