Java 8 | Nashorn
Nashorn是一個javascript引擎。
從JDK 1.8開始,Nashorn取代Rhino(JDK 1.6, JDK1.7)成為Java的嵌入式JavaScript引擎。 Nashorn完全支持ECMAScript 5.1規範以及一些擴展。它使用基於JSR 292的新語言特性,其中包含在JDK 1.7中引入的invokedynamic,將JavaScript編譯成Java字節碼。
與先前的Rhino實現相比,這帶來了2到10倍的性能提升。
jjs
jjs是個基於Nashorn引擎的指令行工具。它接受一些JavaScript源程式碼為參數,並且執行這些源程式碼。如果想要更了解可以看官方文件
例如,我們創建一個具有如下內容的fun.js文件:
1 | function f() { |
打開指令提示字元,輸入以下指令:
1 | $ jjs fun.js |
輸出的結果為:
1 | 2 |
註:在安裝完
JDK8,要設定好環境變數(PATH)中包括JDK的bin目錄。(不要以為打Java -v,有顯示就表示有指定好唷)
jjs 交互式編程
打開指令提示字元,輸入以下指令:
1 | $ jjs |
傳遞參數
打開指令提示字元,輸入以下指令:
1 | $ jjs -- a b c |
Java 中調用 JavaScript
使用ScriptEngineManager,JavaScript程式碼可以在Java中執行,如下:
1 | Java8Tester.java 文件 |
輸出的結果為:
1 | $ java JavaTester |
JavaScript 中調用 Java
以下演示如何在JavaScript中引用Java類:
1 | var BigDecimal = Java.type('java.math.BigDecimal'); |
輸出的結果為:
1 | $ jjs fun.js |
註:以上參考了
【JDK8】JavaScript 引擎 Nashorn 之 jjs
Stream 與平行化
Java 8 Lambda新語法,簡化程式,增強效能
Java 8 新特性
Java 8的新特性—终极版
现代化 Java - Java8 指南