JDK6已经发布很久了,很早就听过他已经支持脚本语言了,不过一直没有时间尝试,今天偷闲试了一下,感觉不错。
  javax.script包它是Java新增的操作脚本的工具包,
  利用它我们可以对脚本语言进行操作(本例仅是针对javascript

  1.用引擎直接解析脚本公式
  Java代码
  //创建脚本引擎管理器
  ScriptEngineManager sem = new ScriptEngineManager();
  //创建一个处理JavaScript的脚本引擎
  ScriptEngine engine = sem.getEngineByExtension("js");
  try{
  //执行js公式
  engine.eval("if(6>5){flag=true;}else{flag =false;}");
  }catch(ScriptException ex){
  ex.printStackTrace();
  }
  //看看我们预期的反馈结果 true
  System.out.println((engine.get("flag")));
  2.创建方法并进行脚本调用(这个是我比较喜欢的一种方式)
  Java代码
  ScriptEngineManager sem = new ScriptEngineManager();
  ScriptEngine engine = sem.getEngineByName("JavaScript");
  //创建脚本
  String script = "function max(first,second) "
  + "{ return (first > second) ?true:false;}";
  //执行脚本
  engine.eval(script);
  Invocable inv = (Invocable) engine;
  //执行方法并传递参数
  Object obj = inv.invokeFunction("max", "0", "1");
  //打印结果
  System.out.println((Boolean)obj==false);
  这里据说Invoable很有用,好多高级功能可以用到。

java中使用js函数的更多相关文章

  1. JSF页面中使用js函数回调后台bean方法并获取返回值的方法

    由于primefaces在国内使用的并不是太多,因此,国内对jsf做系统.详细的介绍的资料很少,即使有一些资料,也仅仅是对国外资料的简单翻译或者是仅仅讲表面现象(皮毛而已),它们的语句甚至还是错误的, ...

  2. java中执行js代码

    要在java中执行js代码,首先明白,java不支持浏览器本身的方法.支持自定义的js方法,否则会报错 先新建一个js文件:jsss.js 内容如下: function aa(a,b){ return ...

  3. 【Android】java中调用JS的方法

    最近因为学校换了新的教务系统,想做一个模拟登陆功能,发现登陆的账号和密码有一个js脚本来进行加密 整理了一下java中执行JS的方法 智强教务 账号 密码 加密方法 var keyStr = &quo ...

  4. jquery操作iframe中的js函数

    关键字:jquery操作iframe中的js函数 1.jquery操作iframe中的元素(2种方式) var tha = $(window.frames["core_content&quo ...

  5. Java中的回调函数学习

    Java中的回调函数学习 博客分类: J2SE JavaJ#  一般来说分为以下几步: 声明回调函数的统一接口interface A,包含方法callback(); 在调用类caller内将该接口设置 ...

  6. java中string.trim()函数的使用

    java中string.trim()函数的的作用是去掉字符串开头和结尾的空格,防止不必要的空格导致的错误. public static void main(String arg[]){ String ...

  7. 转载:java中Thread.sleep()函数使用

    点我跳过黑哥的卑鄙广告行为,进入正文. Java多线程系列更新中~ 正式篇: Java多线程(一) 什么是线程 Java多线程(二)关于多线程的CPU密集型和IO密集型这件事 Java多线程(三)如何 ...

  8. 在Kotlin中 使用js 函数

    在Kotlin中 使用js 函数 import javax.script.Invocable import javax.script.ScriptEngineManager fun main(args ...

  9. Java中的回调函数学习-深入浅出

    Java中的回调函数一般来说分为下面几步: 声明回调函数的统一接口interface A.包括方法callback(); 在调用类caller内将该接口设置为私有成员private A XXX; 在c ...

随机推荐

  1. python-字符转换遇到的问题

    1,异常: 'ascii' codec can't encode characters 字符集的问题,在文件前加两句话:import sysreload(sys)sys.setdefaultencod ...

  2. 书写一个程序,把变量n的初始值设置为1957,然后利用除法运算和取余运算把变量n的每一位数字都抽出来并打印

    class number { void num(){ int a,b,c,d; int n=1957; a=n/1000; b=n/100%10; c=n/10%10; d=n%10; System. ...

  3. Mac 奇淫巧技 哈哈

    1. 设置别名 sudo vim ~/.bash_profile alias ll='ls -lhF' alias la='ls -hlAF' alias c='clear' alias rm='ls ...

  4. EasyMvc入门教程-高级控件说明(15)方位布局控件

    现在很多管理后台都流行全屏切割的布局,大体结构如下图所示: 大家注意到没,整个布局是五个部分组成:“东西南北中”,EasyMvc对应的实现的代码为: @(Html.Q().Layout().TextC ...

  5. Flutter开发记录part1

    (1)AppBar:automaticallyImplyLeading//是否带返回leading箭头 (2)非route路由页面跳转 :Navigator.of(context).push(Mate ...

  6. Kali Linux信息收集工具全

    可能大部分渗透测试者都想成为网络空间的007,而我个人的目标却是成为Q先生! 看过007系列电影的朋友,应该都还记得那个戏份不多但一直都在的Q先生(由于年级太长目前已经退休).他为007发明了众多神奇 ...

  7. mysql 远程登陆不上

    当使用 TCP/IP 连接 mysql 时, 出现 : Can't connect to MySQL server on 'xxx.xxx.xxx.xxx.'(111) 这个错误. 经过重复折腾: 确 ...

  8. 使用Powermock和mockito来进行单元测试

    转载:http://blog.csdn.net/u013428664/article/details/44095889 简介 Mockito是一个流行的Mocking框架.它使用起来简单,学习成本很低 ...

  9. Python 可视化Twitter中指定话题中Tweet的词汇频率

    CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-7-8 @author: guaguastd @name: pl ...

  10. 获取服务器classes根路径

    /** * 获取web应用路径 * @Description : 方法描述 * @Method_Name : getRootPath * @return * @return : String * @C ...