Latest web development tutorials

Java 8 Nashorn JavaScript

Java 8 fitur baru Java 8 fitur baru


Nashorn mesin javascript.

JDK 1,8 dari awal, Nashorn digantikan Rhino (JDK 1.6, JDK1.7) menjadi Java engine JavaScript tertanam. Nashorn mendukung penuh ECMAScript 5.1 spesifikasi dan beberapa ekstensi. Hal ini didasarkan pada penggunaan bahasa baru fitur JSR 292, yang berisi diperkenalkan pada JDK 7 di invokedynamic, JavaScript dikompilasi ke dalam kode byte Java.

Dibandingkan dengan realisasi Rhino sebelumnya, yang membawa 2-10 kali kinerja.


jjs

jjs Nashorn mesin adalah berdasarkan alat baris perintah. Ia menerima beberapa JavaScript kode sumber untuk parameter, dan mengeksekusi kode sumber.

Sebagai contoh, kita membuat file sample.js dengan isi sebagai berikut:

print('Hello World!');

Buka konsol, masukkan perintah berikut:

$ jjs sample.js

Output program di atas adalah:

Hello World!

pemrograman interaktif jjs

Buka konsol, masukkan perintah berikut:

$ jjs
jjs> print("Hello, World!")
Hello, World!
jjs> quit()
>>

melewati parameter

Buka konsol, masukkan perintah berikut:

$ jjs -- a b c
jjs> print('字母: ' +arguments.join(", "))
字母: a, b, c
jjs> 

Java memanggil JavaScript

Gunakan ScriptEngineManager, kode JavaScript dapat dieksekusi di Jawa, contoh adalah sebagai berikut:

import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;

public class Java8Tester {
   public static void main(String args[]){
   
      ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
      ScriptEngine nashorn = scriptEngineManager.getEngineByName("nashorn");
		
      String name = "w3big";
      Integer result = null;
      
      try {
         nashorn.eval("print('" + name + "')");
         result = (Integer) nashorn.eval("10 + 2");
         
      }catch(ScriptException e){
         System.out.println("执行脚本错误: "+ e.getMessage());
      }
      
      System.out.println(result.toString());
   }
}

Pelaksanaan script di atas, output:

$ javac Java8Tester.java 
$ java Java8Tester
w3big
12


JavaScript Memanggil Java

Contoh berikut menunjukkan bagaimana referensi kelas Java dalam JavaScript:

var BigDecimal = Java.type('java.math.BigDecimal');

function calculate(amount, percentage) {

   var result = new BigDecimal(amount).multiply(
   new BigDecimal(percentage)).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_EVEN);
   
   return result.toPlainString();
}

var result = calculate(568000000000000000023,13.9);
print(result);

Kami menggunakan script perintah jjs di atas, hasil output adalah sebagai berikut:

$ jjs sample.js
78952000000000002017.94

Java 8 fitur baru Java 8 fitur baru