测试js脚本引擎

public class helloworld {

public static void main(String[] args) throws Exception {

//获得脚本引擎对象

ScriptEngineManager sem=new ScriptEngineManager();

ScriptEngine engine=sem.getEngineByName("javascript");

//定义变量,会存储到引擎上下文种,java和js都能取到

engine.put("msg","good man");

String str="var user= {name:'我',age:18,schools:['高中','大学']};";

str+="print(user.name);";

//执行脚本

engine.eval(str);

//js代码修改

engine.eval("msg = 'i am a good man';");

//java获取值

System.out.println(engine.get("msg"));

//定义js函数

engine.eval("function add(a,b){var sum=a+b;return sum;}");

//执行js函数

//取得调用接口

Invocable jsInvoke =(Invocable)engine; //Invocable是ScriptEngine的一个接口,调用函数需要强转

//执行js函数

Object result1=jsInvoke.invokeFunction("add", new Object[]{113,20});

System.out.println(result1);

//导入其他java包,使用其他包种的java类

String jsCode=" var list=java.util.Arrays.asList([\"小学\",\"大学\"]);";

engine.eval(jsCode);

List list2=(List)engine.get("list");

for(String temp:list2)

{

System.out.println(temp);

}

//执行一个js文件(置于src下即可)

URL url=helloworld.class.getClassLoader().getResource("nn.js"); //类加载器,返回url

FileReader fr=new FileReader(url.getPath());

engine.eval(fr);

fr.close();

}

}

java rhino 运行 js_java 脚本引擎Rhino执行js代码和文件相关推荐

  1. Java脚本引擎执行js代码以及动态编译

    Java脚本引擎执行js代码 一.概述 JAVA脚本引擎是从JDK6.0之后添加的新功能. 使得 Java 应用程序可以通过一套固定的接口与各种脚本引擎交互,从 而达到在 Java 平台上调用各种脚本 ...

  2. JAVA嵌入运行Groovy脚本

    最近设计一个数据统计系统,系统中上百种数据统计维度,而且这些数据统计的指标可能随时会调整.如果基于java编码的方式逐个实现数据统计的API设计,工作量大而且维护起来成本较高;最终确定为将" ...

  3. 什么?java中居然可以执行js代码了?真是不知者不怪

    今天在书上看的,java中可以直接调用js的函数了,言外之意就是java已经支持外部的脚本语言了(在运行期解释执行的),查了查,jdk从1.6之后开始支持的,1.6之前不可以. 为什么Java这种编译 ...

  4. js引擎执行js代码的过程

    js引擎执行js代码的过程 html解析 浏览器下载网页时,浏览器内核解析html.当遇到script标签时,下载js代码并将js代码以流的形式传递给js引擎让js引擎进行js代码的解析. 语义语法分 ...

  5. js如何运行python代码_手把手教你如何使用Python执行js代码

    前言 各位小伙伴,大家好,这次咱们来说一下关于爬虫方向的一个知识,Python如何执行js,快来看看吧!!! 为什么要引出Python执行js这个问题? 都说术业有专攻,每个语言也都有自己的长处和短处 ...

  6. cs项目服务器更新,Visual Studio下运行PowerShell脚本自动更新项目里AssemblyInfo.cs文件的版本(自增小版本号)并发布到Nuget服务器上...

    Visual Studio下运行PowerShell脚本自动更新项目里AssemblyInfo.cs文件的版本(自增小版本号)并发布到Nuget服务器上 附脚本[ update.ps1文件内容]: $ ...

  7. python执行js脚本安全吗_手把手教你如何使用Python执行js代码

    前言 各位小伙伴,大家好,这次咱们来说一下关于爬虫方向的一个知识,Python如何执行js,快来看看吧!!! 为什么要引出Python执行js这个问题? 都说术业有专攻,每个语言也都有自己的长处和短处 ...

  8. JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码。

    JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Java中直接调用js代码 不能调用浏览器中定义的js函数,会抛出异常提示ReferenceError: " ...

  9. app解析不会执行js代码_JS解析和执行时间

    app解析不会执行js代码 At Velocity NY, Daniel Espeset of Etsy gave a great talk about how Etsy profiles their ...

最新文章

  1. 决策树结合网格搜索交叉验证的例子
  2. Cordova入门系列(三)Cordova插件调用 转发 https://www.cnblogs.com/lishuxue/p/6018416.html...
  3. discuz手机客户端java,Discuz!7.2让高级搜索更全面
  4. POJ 3988 Selecting courses
  5. 此项目需要迁移_AndroidX 迁移,看完它应该就够了
  6. a4如何打印双面小册子_怎样将十几几十页的长文件文档打印成A4纸对折的小册子?...
  7. Python开发的一个IDE推荐,Sublime Text 3
  8. java校园导航_基于VRML和JAVA的虚拟校园漫游导航系统的设计和实现
  9. jenkins恢复删除的文件
  10. wps教育版支持latex公式啦
  11. This scheduler instance (XXXXX) is still active but was recovered by another
  12. 解决 java 程序中 CPU 占用率过高问题
  13. 养育女孩(成长版)点燃孩子兴趣的火花
  14. Dev-C++ 实用安装教程
  15. 分号与逗号的区别及举例_怎样区别顿号、逗号和分号
  16. MATLAB license will expire in xx days.解决方法
  17. 领导者应该具备的基本素质
  18. 如何解决Vmware虚拟机出现There is no more space for virtual disk… 虚拟机消息的问题
  19. 【亲测有效】mac电脑也能玩魔兽世界怀旧版(wow经典怀旧版)
  20. 工序质量评价及改进(转载)

热门文章

  1. 在那些打磨汉芯的日子里[转贴]
  2. 配置tomcat用户
  3. html弹窗_对付流氓广告弹窗:彻底告别,这一招最有效
  4. c语言 信号函数,C语言中进程信号集的相关操作函数详解
  5. 强化学习案例_强化学习实践案例!携程如何利用强化学习提高酒店推荐排序质量...
  6. php 纯文本输出_关于PHP的语法介绍,新手必看
  7. 理解python的类实例化_理解python的类实例化
  8. 设计灵感|高饱和渐变创意海报设计作品,值得学习
  9. 精致的App登录页设计欣赏给你灵感
  10. 合成创意海报灵感|比技术更重要的是创意!