English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Nashorn es un motor de javascript.
El motor de JavaScript Nashorn en Java 15 ya no está disponible.
Esto ya no está disponible en Java 11 Se marca como:
@deprecated (forRemoval = true)
Desde JDK 1.8 Desde JDK 1.6, JDK1.7) para convertirse en el motor de JavaScript integrado en Java. Nashorn admite completamente ECMAScript 5.1 especificaciones y algunas extensiones. Utiliza una base JSR 292 que incluye en JDK 7 La característica nueva del lenguaje introducida en JDK
En comparación con la implementación anterior de Rhino, esto trae 2 hasta 10un aumento de rendimiento múltiple.
jjs es una herramienta de línea de comandos basada en el motor Nashorn. Acepta algunos códigos fuente de JavaScript como parámetros y ejecuta estos códigos.
Por ejemplo, creamos un archivo sample.js con el siguiente contenido:
print('¡Hola Mundo!');
Abra la consola e ingrese el siguiente comando:
$ jjs sample.js
El resultado de salida del programa es:
¡Hola Mundo!
Abra la consola e ingrese el siguiente comando:
$ jjs jjs> print("¡Hola, Mundo!") ¡Hola, Mundo! jjs> quit() >>
Abra la consola e ingrese el siguiente comando:
$ jjs -- a b c jjs> print('Letras: ') +arguments.join(", ")) Letras: a, b, c jjs>
Al usar ScriptEngineManager, el código JavaScript se puede ejecutar en Java, ejemplo a continuación:
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 = "w3codebox"; Integer result = null; try { nashorn.eval("print('" + name + ")"); result = (Integer) nashorn.eval("10 + 2"); catch(ScriptException e){ System.out.println("Error al ejecutar el script: ");+ e.getMessage()); } System.out.println(result.toString()); } }
Ejecutar el siguiente script, el resultado de salida es:
$ javac Java8Tester.java $ java Java8Tester w3codebox 12
El siguiente ejemplo muestra cómo referenciar clases 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);
Usamos el comando jjs para ejecutar el script anterior y obtener los resultados siguientes:
$ jjs sample.js 78952000000000002017.94