博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中引入脚本语言例子
阅读量:4338 次
发布时间:2019-06-07

本文共 1626 字,大约阅读时间需要 5 分钟。

对于易变业务,可以将其内容放在脚本中。

修改脚本中的业务代码,不需要重启JVM,可以随时发布而不用重新部署。

function formula(var1, var2){    return var1 + var2 * factor;}

 保存为model.js

1 import java.io.FileReader; 2 import java.util.Scanner; 3  4 import javax.script.Bindings; 5 import javax.script.Invocable; 6 import javax.script.ScriptContext; 7 import javax.script.ScriptEngine; 8 import javax.script.ScriptEngineManager; 9 10 /** 11 * @文件名: GeiJS.java12 * @功能描述: 在java中引入js的例子13 * @说明:对于经常变化的业务。可以放在脚本语言中 14 * @author SunF15 * @date 2014-3-31 上午10:56:13 16 *  17 */18 public class GeiJS {19 20     public static void main(String[] args) throws Exception {21         //获得一个JavaScript的执行引擎22         ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");23         //建立上下文变量24         Bindings bind = engine.createBindings();25         bind.put("factor", 2);26         //绑定上下文,作用域是当前引擎范围27         engine.setBindings(bind, ScriptContext.ENGINE_SCOPE);28         Scanner input = new Scanner(System.in);29         while(input.hasNextInt()){30             int first = input.nextInt();31             int sec = input.nextInt();32             System.out.println("输入的是:"+first+" , "+sec);33             //执行js代码34             engine.eval(new FileReader("src/js/model.js"));  //抛出异常35             //是否可调用方法36             if(engine instanceof Invocable){37                 Invocable in = (Invocable)engine;38                 //执行js中的函数39                 Double result = (Double) in.invokeFunction("formula", first,sec);40                 System.out.println("运算结果:" + result);41             }42         }43     }44 }

 

转载于:https://www.cnblogs.com/sunf/p/3635320.html

你可能感兴趣的文章
两个链表的第一个公共节点
查看>>
知道这20个正则表达式,能让你少写1,000行代码
查看>>
MariaDB 主从同步与热备(14)
查看>>
推荐的 CSS 书写顺序
查看>>
NIO:与 Buffer 一起使用 Channel
查看>>
Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析
查看>>
MFC接收ShellExecute多个参数
查看>>
volatile和synchronized的区别
查看>>
RocketMQ介绍与云服务器安装
查看>>
Jenkins插件HTML Publisher Plugin的使用
查看>>
A. The number of positions
查看>>
解决FLASH遮住层的问题 IE,Firefox都适用!
查看>>
算法 PK 猫咪 | 章鱼保罗后继竟然是只猫?
查看>>
rsync+inotify
查看>>
Provider 模式
查看>>
系统分析与建模6
查看>>
window.onload起冲突解决办法
查看>>
并发量计算研究
查看>>
sqlserver安装相关问题
查看>>
iOS学习系列 - 利用ASIHTTPRequest实现异步队列
查看>>