Latest web development tutorials

Java 8 Nashorn JavaScript

Java 8 nouvelles fonctionnalités Java 8 nouvelles fonctionnalités


Nashorn un moteur javascript.

JDK 1.8 depuis le début, Nashorn substitué Rhino (JDK 1.6, JDK1.7) est devenu Java embarqué moteur JavaScript. Nashorn soutient pleinement ECMAScript 5.1 spécification et certaines extensions. Il est basé sur l'utilisation de la nouvelle langue dispose JSR 292, qui contient introduit dans le JDK 7 à invokedynamic, le JavaScript compilé en code octet Java.

Par rapport à la réalisation précédente Rhino, qui a 2-10 fois la performance.


jjs

moteur jjs Nashorn est un outil de ligne de commande sur la base. Il accepte une partie de code source JavaScript pour les paramètres, et exécute le code source.

Par exemple, nous créons fichier sample.js avec le contenu suivant:

print('Hello World!');

Ouvrez la console, entrez la commande suivante:

$ jjs sample.js

La sortie du programme ci-dessus est:

Hello World!

programmation interactive jjs

Ouvrez la console, entrez la commande suivante:

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

passage de paramètres

Ouvrez la console, entrez la commande suivante:

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

Java appelant JavaScript

Utilisez ScriptEngineManager, code JavaScript peut être exécuté en Java, les exemples sont les suivants:

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

Mise en œuvre du script ci-dessus, la sortie est:

$ javac Java8Tester.java 
$ java Java8Tester
w3big
12


JavaScript Java Calling

L'exemple suivant montre comment référencer les classes 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);

Nous utilisons script de commande jjs ci-dessus, les résultats de sortie sont les suivantes:

$ jjs sample.js
78952000000000002017.94

Java 8 nouvelles fonctionnalités Java 8 nouvelles fonctionnalités