Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java 8 - Nashorn JavaScript

Met Java 8, Nashorn, wordt een sterk verbeterde javascript-engine geïntroduceerd, ter vervanging van de bestaande Rhino. Nashorn levert 2 tot 10 keer betere prestaties, omdat het de code direct in het geheugen compileert en de bytecode doorgeeft aan JVM. Nashorn gebruikt de functie Invoke dynamics, geïntroduceerd in Java 7 om de prestaties te verbeteren.

jjs

Voor de Nashorn-engine introduceert JAVA 8 een nieuwe opdrachtregeltool, jjs, om javascript-codes uit te voeren op de console.

Js-bestand interpreteren

Maak en bewaar het bestand sample.js in c:\> JAVA-map.

voorbeeld.js

print('Hello World!');

Open de console en gebruik de volgende opdracht.

C:\JAVA>jjs sample.js

Het zal de volgende output produceren:

Hello World!

jjs in interactieve modus

Open de console en gebruik de volgende opdracht.

C:\JAVA>jjs
jjs> print("Hello, World!")
Hello, World!
jjs> quit()
>>

Argumenten doorgeven

Open de console en gebruik de volgende opdracht.

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

JavaScript aanroepen vanuit Java

Met ScriptEngineManager kan JavaScript-code worden aangeroepen en geïnterpreteerd in Java.

Voorbeeld

Maak het volgende Java-programma met een editor naar keuze, bijvoorbeeld C:\> JAVA.

Java8Tester.java

Live demo
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 executing script: "+ e.getMessage());
      }
      System.out.println(result.toString());
   }
}

Verifieer het resultaat

Stel de klas samen met javac compiler als volgt −

C:\JAVA>javac Java8Tester.java

Voer nu de Java8Tester als volgt uit −

C:\JAVA>java Java8Tester

Het zou het volgende resultaat moeten opleveren −

Mahesh
12

Java aanroepen vanuit JavaScript

In het volgende voorbeeld wordt uitgelegd hoe u Java-klassen in javascript importeert en gebruikt.

Maak en bewaar sample.js in c:\> JAVA-map.

voorbeeld.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);

Open de console en gebruik de volgende opdracht.

C:\JAVA>jjs sample.js

Het zou de volgende output moeten produceren −

78952000000000000003.20

Java

  1. Java-operators
  2. Java-opmerkingen
  3. Java voor elke lus
  4. Java-strings
  5. Java-interface
  6. Java anonieme klasse
  7. Java proberen-met-bronnen
  8. Java-annotaties
  9. Java-beweringen
  10. Java-vector
  11. Java 8 - Nashorn JavaScript