1.建立一个main.js
function cal(var1,var2) { return var1+var2*var3; }2.建立一个 java测试文件
package com.test.java; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import javax.script.Bindings; import javax.script.Invocable; import javax.script.ScriptContext; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; public class TestJava { /** * @param args */ public static void main(String[] args) { try { new TestJava().testJS(); } catch (Exception e) { // TODO Auto-generated catch block System.out.println("exception" + e.toString()); } } private void testJS() throws FileNotFoundException, ScriptException, NoSuchMethodException { ScriptEngine engine = new ScriptEngineManager() .getEngineByName("javascript"); Bindings bind = engine.createBindings(); bind.put("var3", 2); engine.setBindings(bind, ScriptContext.ENGINE_SCOPE); int var1 = 5; int var2 = 6; FileReader fileReader = new FileReader("D:\\android\\workspace\\testJava\\src\\com\\test\\java\\main.js"); engine.eval(fileReader); try { fileReader.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (engine instanceof Invocable) { Invocable in = (Invocable) engine; Double result; result = (Double) in.invokeFunction("cal", var1, var2); System.out.println("result:" + result.intValue()); }else{ System.out.println("error 2"); } } }