English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java Base Tutorial

Contrôle de flux Java

Java tableau

Java orienté objet (I)

Java orienté objet (II)

Java orienté objet (III)

Java Exception Handling

Java Liste (List)

Java Queue (file d'attente)

Java Map

Java Set

Java entrée/sortie (I/)

Java Reader/Writer

Autres sujets Java

Java 8 Nashorn JavaScript

Java 8 New features

Nashorn est un moteur javascript.

Le moteur JavaScript Nashorn dans Java 15 n'est plus disponible.

Cela a déjà été désactivé dans Java 11 marqué :

@deprecated (forRemoval = true)

à partir de JDK 1.8 Depuis JDK 1.6, JDK1.7) pour devenir un moteur JavaScript intégré à Java. Nashorn prend en charge complètement ECMAScript 5.1 norme ainsi que quelques extensions. Il utilise une base JSR 292 nouvelles caractéristiques linguistiques, incluses dans JDK 7 introduit dans Java, va compiler JavaScript en bytecode Java.

Compared to the previous Rhino implementation, this brings 2 à  10un gain de performance de deux fois.

jjs

jjs est un outil en ligne de commande basé sur le moteur Nashorn. Il accepte certains fichiers sources JavaScript en tant que paramètres et exécute ces sources.

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

print('Hello World!');

Ouvrez la console et tapez la commande suivante :

$ jjs sample.js

Le résultat de sortie du programme ci-dessus est :

Hello World!

Programmation interactive jjs

Ouvrez la console et tapez la commande suivante :

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

Passer des paramètres

Ouvrez la console et tapez la commande suivante :

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

Appel JavaScript en Java

En utilisant ScriptEngineManager, le code JavaScript peut être exécuté dans Java, voici un exemple :

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("Erreur d'exécution du script : ");+ e.getMessage());
      }
      
      System.out.println(result.toString());
   }
}

Exécuter le script suivant, le résultat de sortie est :

$ javac Java8Tester.java 
$ java Java8Tester
w3codebox
12

Appel Java en JavaScript

The following example demonstrates how to reference Java classes in 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);

We use the jjs command to execute the above script, and the output is as follows:

$ jjs sample.js
78952000000000002017.94

Java 8 New features