Java 8 - Nashorn JavaScript

Java 8 ile Nashorn, mevcut Rhino'nun yerini alacak çok geliştirilmiş bir javascript motoru tanıtıldı. Nashorn, kodu doğrudan bellekte derlediği ve bayt kodunu JVM'ye geçirdiği için 2 ila 10 kat daha iyi performans sağlar. Nashorn, performansı artırmak için Java 7'de sunulan dinamikleri çağırma özelliğini kullanır.

jjs

Nashorn motoru için JAVA 8, yeni bir komut satırı aracı sunuyor, jjs, konsolda javascript kodlarını çalıştırmak için.

Js dosyasını yorumlama

Dosyayı oluşturun ve kaydedin sample.js c: \> JAVA klasöründe.

sample.js

print('Hello World!');

Konsolu açın ve aşağıdaki komutu kullanın.

C:\JAVA>jjs sample.js

Aşağıdaki çıktıyı üretecektir:

Hello World!

Etkileşimli Modda jjs

Konsolu açın ve aşağıdaki komutu kullanın.

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

Bağımsız Değişkenleri Geç

Konsolu açın ve aşağıdaki komutu kullanın.

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

Java'dan JavaScript'i çağırmak

ScriptEngineManager kullanılarak, JavaScript kodu Java'da çağrılabilir ve yorumlanabilir.

Misal

C: \> JAVA'da seçtiğiniz herhangi bir düzenleyiciyi kullanarak aşağıdaki Java programını oluşturun.

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

Sonucu Doğrulayın

Kullanarak sınıfı derleyin javac aşağıdaki gibi derleyici -

C:\JAVA>javac Java8Tester.java

Şimdi Java8Tester'i aşağıdaki gibi çalıştırın -

C:\JAVA>java Java8Tester

Aşağıdaki sonucu vermelidir -

Mahesh
12

JavaScript'ten Java Çağırma

Aşağıdaki örnek, Java sınıflarının java komut dosyasında nasıl içe aktarılacağını ve kullanılacağını açıklamaktadır.

Oluştur ve kaydet sample.js c: \> JAVA klasöründe.

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

Konsolu açın ve aşağıdaki komutu kullanın.

C:\JAVA>jjs sample.js

Aşağıdaki çıktıyı üretmelidir -

78952000000000000003.20