脚本初始化

    private ScriptEngineManager mgr = new ScriptEngineManager();ScriptEngine engineArr = new ScriptEngine;

从文件加载脚本,预编译,检查语法错误

            String fileScript = "./cabtype.js";File fs = new File(fileScript);if (fs.exists()) {try {engineArr = mgr.getEngineByName("JavaScript");FileReader fr = new FileReader(fileScript);engineArr.eval(fr);logger.info("加载脚本 cabType = {} 成功!", i);} catch (Exception e) {logger.error("加载脚本 cabType = {} 失败!", i);}}

调用js脚本中的函数,js函数可以以数组的形式返回多个返回值

 Invocable inv = (Invocable) engineArr;int i = 0;try {ScriptObjectMirror som = (ScriptObjectMirror) inv.invokeFunction(paramSymbol + "_fault", newVA);//调用JS函数if (som == null) {//TODO  代表无函数,可以不做处理} else if (som.isEmpty()) {logger.info("脚本执行返回空数组元素!");} else {//取数组中的返回值if (som.isArray() && som.size() >= 3) {String faultCode = som.get("0").toString();String faultValu = som.get("1").toString();String faultName = som.get("2").toString();} else {logger.error("NODEID:{}, 脚本返回的故障参数{}值不为3的倍数", sNodeId, obj.getParamSymbol());}}} catch (ScriptException e) {logger.error("NODEID:{}, FAULT脚本异常:{}", sNodeId, e.getMessage());} catch (NoSuchMethodException e) {logger.error("NODEID:{}, FAULT方法异常:{}", sNodeId, e.getMessage());} catch (Exception e) {logger.error("NODEID:{}, FAULT未知异常:{}", sNodeId, e.getMessage());}

js文件中的部分函数例子


//主路EEV 3 强制开
function  f3_646_range ( projectId, cabId, js) {var minV = 0;var maxV = 500;return [6,646,0,500,0,"步"] ;
}function  f3_646_write(value) {return [6, 646, value];
}
//主路EEV 4 强制开
function  f3_647_show (value) {return [value, value+"步"] ;
}//主路EEV 4 强制开
function  f3_647_range ( projectId, cabId, js) {var minV = 0;var maxV = 500;return [6,647,0,500,0,"步"] ;
}function  f3_647_write(value) {return [6, 647, value];
}
//辅路EEV 3 强制开
function  f3_648_show (value) {return [value, value+"步"] ;
}//辅路EEV 3 强制开
function  f3_648_range ( projectId, cabId, js) {var minV = 0;var maxV = 500;return [6,648,0,500,0,"步"] ;
}

java与js脚本的交互相关推荐

  1. Java 执行 JS 脚本工具

    Java 执行 JS 脚本工具 用途:为了便于系统扩展,提供了 JS 脚本的功能,可以通过在系统中执行脚本来获得更复杂的功能. 例如:系统提供了一个接口,这个接口不必非的有实现类,而是可以通过JS来实 ...

  2. java 执行js脚本_java中调用js脚本

    JDK1.6加入了对Script(JSR223)的支持.这是一个脚本框架,提供了让脚本语言来访问Java内部的方法.你可以在运行的时候找到脚本引擎,然后调用这个引擎去执行脚本.这个脚本API允许你为脚 ...

  3. mongodb java 执行js脚本_MongoDB编写并执行js脚本

    使用mongodb项目时经常需要在数据库中插入假数据,如果每次都手动插入就会很麻烦,所以我们可以选择编写脚本来执行.mongodb是可以直接执行js脚本的,使用方法也比较简单. 编写脚本 以插入数据为 ...

  4. java 调用js脚本_Java中使用JavaScript脚本的方法步骤

    简介 Nashorn Nashorn 一个 javascript 引擎. 从JDK 1.8开始,Nashorn取代Rhino(JDK 1.6, JDK1.7)成为Java的嵌入式JavaScript引 ...

  5. python执行shell脚本、执行mongodb_mongodb执行js脚本(一)---shell执行

    作为一个数据库,MongoDB有一个很大的优势-它使用js管理数据库,所以也能够使用js脚本进行复杂的管理 mongodb 的shell是javascript实现的,如果直接使用js实现相应的功能则显 ...

  6. 项目中JS脚本的执行方式

    在项目中经常会遇到有一些JS脚本,需要我们执行并将结果进行记录或者返回.这里介绍两种在项目中执行JS脚本的方法,分别是基于python和java实现: 1. python执行js脚本 python执行 ...

  7. android java 调用js,Android中Java和JavaScript交互实例

    Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本.本文将介绍如何实现Java代码和Javascript代码的相互调用. 如 ...

  8. android webview js交互 第一节 (java和js交互)

     转载请注明出处         挺帅的移动开发专栏  http://blog.csdn.net/wangtingshuai/article/details/8631835        在andro ...

  9. jsp里面java和js交互_jsp与js交互实例 | 学步园

    使用jsp(就是java代码)拼js脚本: lefthead.jsp String basepath = request.getContextPath()+"/"; String ...

最新文章

  1. 吴 恩 达 教 你 做 机 器 学 习 职 业 规 划
  2. Mallet机器语言工具包-入门测试
  3. 高阶奇异值分解(HOSVD)理解
  4. Xcode 8 GM 编译缺失 /Users/usr/lib/libresolv.9.dylib
  5. 走向统一的 .NET 旅程
  6. 数据结构——图的C语言实现
  7. 三十岁学python_我30岁了,转行学编程可以吗? 排除法告诉你答案
  8. 对一道if-else相关的程序题的简单分析
  9. 有道翻译 vs google翻译
  10. 仿链家地图找房_仿链家地图找房的简单实现
  11. 假如让你从 0 到 1 实现一个直播弹幕系统
  12. 2021年安全员-C证(陕西省)考试总结及安全员-C证(陕西省)模拟考试系统
  13. uniApp APP端调起微信支付失败errCode:-100的踩坑
  14. PHP反序列化详解(二)——PHP魔术方法与PHP反序列化漏洞
  15. 视觉slam14讲学习(一)之se3上的定位表示:轨迹显示与轨迹误差
  16. 攻防世界xctfweb题leaking题解
  17. 10万弹幕大军带你一起看芒果热播综艺《披荆斩棘的哥哥》
  18. 什么是核心交换机?如何选择核心交换机?
  19. Alien Skin Exposure X7离线安装(PS/LR胶片滤镜模拟插件)
  20. nginx 防止恶意域名解析_nginx防恶意域名解析

热门文章

  1. Iterator迭代器与foreach循环
  2. 移动安全-APK代码混淆
  3. Sharepoint 学习网站
  4. 开题报告:基于java摄影图片分享网站系统 毕业设计论文开题报告模板
  5. 什么运动耳机好用、五款运动耳机推荐性价比清单
  6. 超简单五步实现VOS3000客户端呼入配置
  7. BIT琪露诺的完美算法教室 3.初上征途的za
  8. 痘痘消失,美丽再现!
  9. 这个社会是“赢者通吃”!
  10. java转go语言,值得转吗?