javac
and java
commands are executed for Java 8. import javax.script.*; public class EvalScript { public static void main(String[] args) throws Exception { // create a script engine manager ScriptEngineManager factory = new ScriptEngineManager(); // create a Nashorn script engine ScriptEngine engine = factory.getEngineByName("nashorn"); // evaluate JavaScript statement try { engine.eval("print('Hello, World!');"); } catch (final ScriptException se) { se.printStackTrace(); } } }
./javac EvalScript.java
./java EvalScript
Hello, World!
var MyClass = Java.type("EvalScript.MyClass"); var my = new MyClass(); my.printMsg("Hello!");
import javax.script.*; import java.io.*; public class EvalScript { public static void main(String[] args) throws Exception { // create a script engine manager ScriptEngineManager factory = new ScriptEngineManager(); // create a Nashorn script engine ScriptEngine engine = factory.getEngineByName("nashorn"); // evaluate JavaScript statement try { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); engine.eval(br); } catch (final ScriptException se) { se.printStackTrace(); } } public static class MyClass { public void printMsg(String msg) { System.out.println("printMsg : "+msg); } } }
./java EvalScript < MyScript.js
printMsg : Hello!
Source: https://habr.com/ru/post/195870/
All Articles