Latest web development tutorials

Java 8 Nashorn JavaScript

Java 8 nuevas características Java 8 nuevas características


NASHORN un motor de javascript.

JDK 1.8 desde el principio, Nashorn sustituido Rhino (JDK 1.6, JDK1.7) se convirtió en Java incluidos en el motor de JavaScript. Nashorn es totalmente compatible con la especificación ECMAScript 5.1 y algunas extensiones. Se basa en el uso de la nueva lengua cuenta con JSR 292, que contiene introducida en JDK 7 en invokedynamic, el JavaScript compilado en código byte Java.

En comparación con la anterior realización de Rhino, que reunió 2-10 veces el rendimiento.


jjs

motor jjs Nashorn es una herramienta de línea de comandos basada. Se acepta algunos de código fuente JavaScript para los parámetros, y ejecuta el código fuente.

Por ejemplo, creamos archivo sample.js con el siguiente contenido:

print('Hello World!');

Abra la consola, introduzca el siguiente comando:

$ jjs sample.js

La salida del programa anterior es:

Hello World!

programación interactiva jjs

Abra la consola, introduzca el siguiente comando:

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

Paso de parámetros

Abra la consola, introduzca el siguiente comando:

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

Java llamando JavaScript

Utilice ScriptEngineManager, código JavaScript puede ejecutar en Java, los ejemplos son los siguientes:

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

Aplicación de la secuencia de comandos anterior, la salida es:

$ javac Java8Tester.java 
$ java Java8Tester
w3big
12


JavaScript Java Calling

El siguiente ejemplo muestra cómo hacer referencia clases de Java en 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);

Utilizamos guión de comando jjs anteriormente, los resultados de salida son los siguientes:

$ jjs sample.js
78952000000000002017.94

Java 8 nuevas características Java 8 nuevas características