JAvaラーニングノート--javaでJavaScriptコードを呼び出す
4195 ワード
JAvaでJavaScriptコードを呼び出す
簡単にjsコードを実行する方法を紹介して、変数を定義して、関数を呼び出して、jsファイルを実行して、直接コードに上がります
出力結果:55,1111,22.2.0 3.0 5.0
簡単にjsコードを実行する方法を紹介して、変数を定義して、関数を呼び出して、jsファイルを実行して、直接コードに上がります
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.List;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class ScriptEngineTest {
public static void main(String[] args) throws ScriptException, NoSuchMethodException, FileNotFoundException {
//
ScriptEngineManager scriptEngineManager=new ScriptEngineManager();
ScriptEngine scriptEngine=scriptEngineManager.getEngineByName("javascript");
String str="var product={name:'computer',price:55};println(product.price);";
//
scriptEngine.eval(str);
// engine.eval("alert(product.price);"); js ,
// , ,javascript java
scriptEngine.put("a", "1111");
System.out.println(scriptEngine.get("a"));
scriptEngine.eval("a = "+scriptEngine.get("a")+"*2.0;");//
System.out.println(scriptEngine.get("a"));
// function
//
scriptEngine.eval("function add(a,b){return a+b;}");
//
Invocable invoke=(Invocable) scriptEngine;
//
Double result=(Double)invoke.invokeFunction("add", new Object[]{1,2});
// Double, Float Integer
System.out.println(result);
// java , java , java js
String str1="importPackage(java.util); var numList=Arrays.asList([1,2,3,4,5]);";
scriptEngine.eval(str1);
List numList=(List)scriptEngine.get("numList");
System.out.println(numList.get(4));// double
// js
String jsFileName = "a.js"; // js
FileReader reader = new FileReader(jsFileName); //
scriptEngine.eval(reader);
}
}
出力結果:55,1111,22.2.0 3.0 5.0