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


背景

在項目中需要使用java調用javascript腳本,有兩種方案,一種是faas,使用開源的openwhisk。另一種本地運行的方式,使用jdk的nashorn調用javascript,jdk版本為1.8。

但是在編寫js腳本的時候使用了ECMAScript6中的新特性const和let。在執行的過程中報錯了。

解決方法

原來jdk1.8中的nashorn默認支持的是ECMAScript5.1,而對於ECMAScript6相關特性的支持還不是很完善。但是可以通過jvm參數來開啟jdk1.8對部分ECMAScript6新特性的支持。參數格式如下:

-Dnashorn.args=--language=es6

看了jdk的文檔,從jdk9開始nashorn較好的支持了ECMAScript6。

如果有頻繁的java調用javascript,並且javascript的腳本較復雜,建議還是上faas吧。更可控,而且更安全。性能也沒有問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM