首先是java的引用代码部分:
package com.sise.lab01.动态化脚本案例; import javax.script.*; import java.io.FileNotFoundException; import java.io.FileReader; import java.util.Scanner; /** * java读取js脚本 * @author hao_lin * @data 2018/8/16 9:07 */ public class JavaReadJavaScript { public static void main(String[] args) throws FileNotFoundException, ScriptException, NoSuchMethodException { ScriptEngine engine=new ScriptEngineManager().getEngineByName("javascript"); //建立上下文 Bindings bind=engine.createBindings(); bind.put("factor",1); System.out.println("请输入初始化参数:"); Scanner input=new Scanner(System.in); String item=input.nextLine(); while(item!="exit"){ Object eval = engine.eval(new FileReader("D:\\code\\book1\\src\\main\\resources\\lab.js")); if(engine instanceof Invocable){ System.out.println("输入参数:"+item); Invocable in= (Invocable) engine; String result= (String) in.invokeFunction("printWord",item); System.out.println("运算结果:"+result.toString()); } System.out.println("请再次输入参数:"); item=input.nextLine(); } } } 复制代码
其次是js脚本部分的内容:
function printWord(item) { if(item=='test1'){ item+="test1"; return item; } item=item+"check"; return item; } 复制代码
然后开启程序即可看到效果:
网络异常,图片无法展示
|
通常在java程序里面使用js脚本的好处在于程序的灵活性,不需要重新开启java虚拟机,即可改变程序的运算结果。