Rhino学习总结

Rhino学习总结

ID:39467821

大小:49.50 KB

页数:4页

时间:2019-07-04

Rhino学习总结_第1页
Rhino学习总结_第2页
Rhino学习总结_第3页
Rhino学习总结_第4页
资源描述:

《Rhino学习总结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Rhino学习笔记MozillaRhinoRhino是一个纯Java的开源的JavaScript实现。他的名字来源于O'Reilly关于JavaScript的书的封面:1.简介rhino是使用java代码实现的javascript解释器,它实现了javascript的核心,符合Ecma-262标准,支持javascript标准的所有特性。Rhino提供了如下功能ü对JavaScript1.5的完全支持ü直接在Java中使用JavaScript的功能ü一个JavaScriptshell用于运行JavaScript脚本ü一个JavaScript的编译器,用于将JavaScript编译成

2、Java二进制文件2.如何运行js脚本将js.jar放入classpath中,在cmd中键入javaorg.mozilla.javascript.tools.shell.Main后进入运行交互界面(js〉),而后在js〉提示符下输入load(“文件路径”),注意次数的目录间隔是“/”。而后输入要运行的js的函数名称即可运行js脚本。例:js代码functionisPrime(num){if(num<=1){print("Pleaseenterapositiveinteger>=2.")returnfalse}varprime=truevarsqrRoot=Math.round(Ma

3、th.sqrt(num))for(varn=2;prime&n<=sqrRoot;++n){prime=(num%n!=0)}returnprime}javaorg.mozilla.javascript.tools.shell.Mainload("D:/isPrime.js");isPrime(77);结果=false1.脚本调试在命令行输入javaorg.mozilla.javascript.tools.debugger.Main可以看到脚本调试页面2.如何通过java代码执行javascriptRhino执行代码的过程1)先设置环境,生成各种javascript的本地对象,如:

4、Object,Function2)使用语法分析对字符串进行分析生成ast。3)然后再使用IRFactory类将ast转换中间表示形式。4)然后再将该中间表示形式转换为二进制代码。5)然后执行该代码得出结果。publicstaticvoidmain(String[]args){  Contextctx=Context.enter();  //获取环境设置Scriptablescope=ctx.initStandardObjects();  //初始化本地对象scope.put("x",scope,newInteger(20));  //输入参数设置scope.put("y",scop

5、e,newInteger(30));  try{      ctx.evaluateString(scope,"varresult=x+y","",1,null);  //执行   System.out.println(scope.get("result",scope));  //结果输出}finally{      Context.exit();  }  1.Rhino的包结构org.mozilla.javascript包:该包内的对象是实现javascript的主要对象。org.mozilla.javascript.ast包:rhino中语法分析器生成的ast表示类都在该包内。

6、org.mozilla.javascript.debug包:该包实现了javascript的debug功能。org.mozilla.javascript.optimizer包:该包实现了javascipt生成代码的代码优化。org.mozilla.javascript.regexp包:该包实现了javascript正侧表达式的功能。6.JSR233Jsr233是为java设计的一套脚本语言API,在发行版本中包括了一个基于MozillaRhino的JavaScript脚本引擎。例:publicclassRunJavaScript{publicstaticvoidmain(Strin

7、g[]args){ScriptEngineManagerfactory=newScriptEngineManager();ScriptEngineengine=factory.getEngineByName("JavaScript");engine.eval("print('HelloWorld')");}}如何与java通信通过put方法用于将一个Java对象映射成一个脚本语言的变量publicclassHelloWorld{Strings="HelloWorld"

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。