Java 8 - Nashorn JavaScript

Dengan Java 8, Nashorn, mesin javascript yang jauh lebih baik diperkenalkan, untuk menggantikan Rhino yang sudah ada. Nashorn memberikan kinerja 2 hingga 10 kali lebih baik, karena secara langsung mengkompilasi kode dalam memori dan meneruskan bytecode ke JVM. Nashorn menggunakan fitur invoke dynamics, diperkenalkan di Java 7 untuk meningkatkan performa.

jjs

Untuk mesin Nashorn, JAVA 8 memperkenalkan alat baris perintah baru, jjs, untuk menjalankan kode javascript di konsol.

Menafsirkan File js

Buat dan simpan file sample.js di c: \> folder JAVA.

sample.js

print('Hello World!');

Buka konsol dan gunakan perintah berikut.

C:\JAVA>jjs sample.js

Ini akan menghasilkan keluaran sebagai berikut:

Hello World!

jjs dalam Mode Interaktif

Buka konsol dan gunakan perintah berikut.

C:\JAVA>jjs
jjs> print("Hello, World!")
Hello, World!
jjs> quit()
>>

Lulus Argumen

Buka konsol dan gunakan perintah berikut.

C:\JAVA> jjs -- a b c
jjs> print('letters: ' +arguments.join(", "))
letters: a, b, c
jjs>

Memanggil JavaScript dari Java

Dengan menggunakan ScriptEngineManager, kode JavaScript dapat dipanggil dan diinterpretasikan di Java.

Contoh

Buat program Java berikut menggunakan editor pilihan Anda di, misalnya, C: \> JAVA.

Java8Tester.java

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 = "Mahesh";
      Integer result = null;
      
      try {
         nashorn.eval("print('" + name + "')");
         result = (Integer) nashorn.eval("10 + 2");
         
      } catch(ScriptException e) {
         System.out.println("Error executing script: "+ e.getMessage());
      }
      System.out.println(result.toString());
   }
}

Verifikasi Hasilnya

Kompilasi kelas menggunakan javac kompiler sebagai berikut -

C:\JAVA>javac Java8Tester.java

Sekarang jalankan Java8Tester sebagai berikut -

C:\JAVA>java Java8Tester

Ini harus menghasilkan hasil sebagai berikut -

Mahesh
12

Memanggil Java dari JavaScript

Contoh berikut menjelaskan cara mengimpor dan menggunakan kelas Java di skrip java.

Buat dan simpan sample.js di c: \> folder JAVA.

sample.js

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);

Buka konsol dan gunakan perintah berikut.

C:\JAVA>jjs sample.js

Ini harus menghasilkan keluaran berikut -

78952000000000000003.20