JavaScriptEngineList.java - Load SJP Reference Implementation

Q

How to load the the SJP Reference Implementation Script Engine?

✍: FYIcenter

A

To load the SJP Reference Implementation Script Engine, you just need to add "sjp-1_0-fr-ri\script-js.jar" to the "-cp" JVM option.

Take the following example program, JavaScriptEngineList.java, to verify how many script engines are loaded:

// Copyright (c) 2017 FYIcenter.com
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineFactory;
import java.util.*;

public class JavaScriptEngineList {
   public static void main(String[] args) throws Exception {
      ScriptEngineManager m = new ScriptEngineManager();
	  List<ScriptEngineFactory> l = m.getEngineFactories();
      System.out.println("\nScript Engines:");
      for (ScriptEngineFactory f : l) {
         System.out.println("\n   Engine info:");
         System.out.println("      Engine name: "+f.getEngineName());
         System.out.println("      Engine version: "+f.getEngineVersion());
         System.out.println("      Language name: "+f.getLanguageName());
         System.out.println("      Language version: "+f.getLanguageVersion());
         System.out.println("      Factory class: "+f.getClass().getName());
	  }
   }
}

Compile and run the example program, JavaScriptEngineList.java:

>\fyicenter\jdk-1.8.0\bin\javac JavaScriptEngineList.java

>\fyicenter\jdk-1.8.0\bin\java 
   -cp .;\fyicenter\sjp-1_0-fr-ri\script-js.jar JavaScriptEngineList

Script Engines:

   Engine info:
      Engine name: Oracle Nashorn
      Engine version: 1.8.0_131
      Language name: ECMAScript
      Language version: ECMA - 262 Edition 5.1
      Factory class: jdk.nashorn.api.scripting.NashornScriptEngineFactory

   Engine info:
      Engine name: Mozilla Rhino
      Engine version: 1.6 release 2
      Language name: ECMAScript
      Language version: 1.6
      Factory class: com.sun.script.javascript.RhinoScriptEngineFactory

The output tells you the reference implementation of SJP API is really the Rhino 1.6R2 JavaScript Java library.

 

SJP (Scripting for the Java Platform) API

⇒⇒FAQ for Rhino JavaScript Java Library

2017-07-21, 1118👍, 0💬