Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Motor JavaScript Nashorn en Java 8: Rendimiento y Nueva Herramienta jjs

Con Java 8 se introduce Nashorn, un motor JavaScript significativamente mejorado que reemplaza a Rhino. Nashorn ofrece un rendimiento 2 a 10 veces superior, ya que compila el código directamente en memoria y pasa el bytecode a la JVM. Utiliza la característica invokedynamics, introducida en Java 7, para optimizar el rendimiento.

La Herramienta jjs

Para el motor Nashorn, Java 8 incluye una nueva herramienta de línea de comandos, jjs, para ejecutar código JavaScript en la consola.

Interpretar Archivos .js

Crea y guarda el archivo sample.js en c:\JAVA.

sample.js

print('¡Hola Mundo!');

Abre la consola y ejecuta:

C:\JAVA>jjs sample.js

Producirá la siguiente salida:

¡Hola Mundo!

Modo Interactivo de jjs

Abre la consola y ejecuta:

C:\JAVA>jjs
jjs> print("¡Hola, Mundo!")
¡Hola, Mundo!
jjs> quit()
>>

Pasar Argumentos

Abre la consola y ejecuta:

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

Llamar a JavaScript desde Java

Usando ScriptEngineManager, el código JavaScript puede ser invocado e interpretado desde Java.

Ejemplo

Crea el siguiente programa Java en C:\JAVA.

Java8Tester.java

Demo en vivo
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 ejecutando script: " + e.getMessage());
        }
        System.out.println(result.toString());
    }
}

Verificar el Resultado

Compila la clase:

C:\JAVA>javac Java8Tester.java

Ejecuta el programa:

C:\JAVA>java Java8Tester

Debería producir el siguiente resultado:

Mahesh
12

Llamar a Java desde JavaScript

El siguiente ejemplo explica cómo importar y usar clases Java en JavaScript.

Crea y guarda sample.js en c:\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);

Abre la consola y ejecuta:

C:\JAVA>jjs sample.js

Debería producir la siguiente salida:

78952000000000000003.20

Java

  1. Dominar Operadores en Java: Tipos, Sintaxis y Ejemplos Prácticos
  2. Comentarios en Java: Tipos, Uso y Mejores Prácticas
  3. Dominar el Bucle for Mejorado en Java: Sintaxis, Ejemplos y Mejores Prácticas
  4. Dominar Strings en Java: Creación, Métodos y Mejores Prácticas
  5. Dominando interfaces en Java: Conceptos, implementación y mejores prácticas
  6. Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
  7. Dominando Try‑with‑Resources en Java: Gestión automática de recursos explicada
  8. Anotaciones en Java explicadas: Tipos, ubicación y ejemplos prácticos
  9. Aserciones en Java: Guía práctica para detectar bugs y asegurar fiabilidad del código
  10. Entendiendo Java Vector: Uso, Características y Comparación con ArrayList
  11. Motor JavaScript Nashorn en Java 8: Rendimiento y Nueva Herramienta jjs