Latest web development tutorials

Java 8 Nashorn JavaScript

Java 8 nowych funkcji Java 8 nowych funkcji


Nashorn silnik JavaScriptu.

JDK 1.8 od początku, Nashorn podstawiony Rhino (JDK 1.6, JDK1.7) stał Java wbudowany silnik JavaScript. Nashorn pełni obsługuje ECMAScript 5.1 specyfikacji oraz kilka rozszerzeń. Opiera się na zastosowaniu nowego języka wyposażony JSR 292, która zawiera wprowadzony w JDK 7 w invokedynamic Z JavaScript kompilowany do kodu bajtowego Javy.

W porównaniu z poprzednim Rhino realizacji, który przyniósł 2-10 razy większą wydajność.


JJs

Silnik JJs Nashorn jest oparty narzędzie wiersza polecenia. Przyjmuje część kodu źródłowego JavaScript dla parametrów i wykonuje kod źródłowy.

Na przykład, możemy utworzyć plik sample.js o następującej treści:

print('Hello World!');

Otwórz konsolę, wpisz następujące polecenie:

$ jjs sample.js

Powyższy program jest wyjście:

Hello World!

JJs interaktywnego programowania

Otwórz konsolę, wpisz następujące polecenie:

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

Przekazywanie parametrów

Otwórz konsolę, wpisz następujące polecenie:

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

Java wywołanie JavaScript

Użyj ScriptEngineManager, kod JavaScript może być wykonana w języku Java, przykłady przedstawiają się następująco:

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

Realizacja powyższego scenariusza, wyjście jest:

$ javac Java8Tester.java 
$ java Java8Tester
w3big
12


JavaScript Wywoływanie Java

Poniższy przykład pokazuje, jak odwołać klas Javy w 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);

Używamy JJS skryptu poleceń powyżej wyniki wyjściowe są następujące:

$ jjs sample.js
78952000000000002017.94

Java 8 nowych funkcji Java 8 nowych funkcji