工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java 8 - Nashorn JavaScript

Java 8 の Nashorn では、大幅に改善された JavaScript エンジンが導入され、既存の Rhino が置き換えられました。 Nashorn は、メモリ内のコードを直接コンパイルし、バイトコードを JVM に渡すため、パフォーマンスが 2 倍から 10 倍向上します。 Nashorn は、パフォーマンスを向上させるために Java 7 で導入された動的機能の呼び出しを使用します。

jjs

Nashorn エンジン用に、JAVA 8 で新しいコマンド ライン ツール jjs が導入されました。 コンソールで JavaScript コードを実行します。

js ファイルの解釈

ファイル sample.js を作成して保存します c:\> JAVA フォルダー内。

sample.js

print('Hello World!');

コンソールを開き、次のコマンドを使用します。

C:\JAVA>jjs sample.js

次の出力が生成されます:

Hello World!

インタラクティブ モードの jjs

コンソールを開き、次のコマンドを使用します。

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

引数を渡す

コンソールを開き、次のコマンドを使用します。

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

Java から JavaScript を呼び出す

ScriptEngineManager を使用すると、Java で JavaScript コードを呼び出して解釈できます。

たとえば、C:\> JAVA.

などで任意のエディターを使用して、次の Java プログラムを作成します。

Java8Tester.java

ライブデモ
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());
   }
}

結果を確認する

javac を使用してクラスをコンパイルします 次のようにコンパイラ-

C:\JAVA>javac Java8Tester.java

次のように Java8Tester を実行します −

C:\JAVA>java Java8Tester

次の結果が生成されるはずです-

Mahesh
12

JavaScript から Java を呼び出す

次の例は、java スクリプトで Java クラスをインポートして使用する方法を説明しています。

sample.js を作成して保存します 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);

コンソールを開き、次のコマンドを使用します。

C:\JAVA>jjs sample.js

次の出力が生成されるはずです −

78952000000000000003.20

Java

  1. Java オペレーター
  2. Java コメント
  3. Java for-each ループ
  4. Java 文字列
  5. Java インターフェイス
  6. Java匿名クラス
  7. Java try-with-resources
  8. Java アノテーション
  9. Java アサーション
  10. Java ベクトル
  11. Java 8 - Nashorn JavaScript