动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息



本月文章推荐
.DateLastAccessed 属性.
.JAVA 的Socket机制.
.JDBC系列教程(六)---可调用语句.
.J2EE SDK 1.4+Resin 2.1.16 的安.
.图解Adapter模式.
.[Portal参考手册]目录.
.JBuilderX+Weblogic Server 8.1.
.易混淆的几个JAVA术语(转贴).
.Java网络编程之传输控制协议(二).
.EJB设计模式1.
.Java多线程编程基础之非线程的方.
.基于weblogic 的ejb 学习笔记(二.
.如何使用 Java 连接处于公司防火.
.JAVA评述.
.如何避免Microsoft非标准JavaSDK.
.Java嵌入式开发讲座 第二讲.
.再谈Java中文问题.
.SUN JAVA认证的内容和认知度.
.XP精华-如何使 Java 项目获得更大.
.Java语言的util类.

Java 5.0中实现JSR-223的方法

发表日期:2008-1-5 |



  最新的Java主版本(Java SE 6,又称Mustang)现在正处于beta版本阶段。虽然该版本并不像Java 5的更新那么多,但是它确实有一些有趣的新特性。毋庸置疑,其中的一个就是对脚本编写语言的支持。

  诸如PHP、Ruby、javascript、Python(或Jython)之类的脚本编写语言被广泛应用于许多领域,并由于其灵活性和简单性而大受欢迎。由于脚本是被解释而不是被编译的,所以可以轻松地从命令行运行和测试它们。这就压缩了编码/测试周期,并提高了开发人员的生产率。脚本通常是动态键入的,其语法极富表现力,所编写出的算法要比Java中的等效算法简明得多。使用起来通常也很有趣。

  在很多情况下,从Java使用脚本编写语言会很有用,比如为Java应用程序提供扩展,以便用户可以编写自己的脚本进行扩展或定制化核心功能。脚本编写语言可读性更强,也更轻易编写,所以(从技术上来说)它们是用于为终端用户提供根据需求定制化产品的可能性的理想语言。

  早已经有许多Java可用的独立脚本编写包了,包括Rhino、Jacl、Jython、BeanShell、JRuby等。新消息是Java 6通过一个标准接口为脚本编写语言提供了内置支持。

  Java 6提供对JSR-223规范的全面支持。该规范提供了一种从Java内部执行脚本编写语言的方便、标准的方式,并提供从脚本内部访问Java资源和类的功能。Java 6附带了与Mozilla Rhino的JavaScript 实现的内置集成。基于该规范,对诸如PHP、Groovy和BeanShell之类的其它脚本编写语言的支持也正在进行中。本文关注的是Rhino实现,但是其它语言应该是基本相同的。

  那么如何在Java 5中使用JSR-223的实现呢? 偶经过仔细地研究, 终于找到了解决方法....

  1. 干活要从理论开始....

  根据JavaDoc的说法, javax.script.ScriptEngineManager 是通过JAR规范中所谓的服务提供商(Service Provider)方法来在库中检索 javax.script.ScriptEngineFactory 实现类并自动注册的. OK, 了解了这个就好办了, 预备开始干活哈....

  2. 开始动手干活了.... :)

  首先制作JSR-223规范实现的包(包括SUN的JavaScript默认实现):

  使用WinRAR等压缩工具打开JRE6中rt.jar文件(注重要提前备份!我的就是备份为jsr-233.jar), 如图1所示:

  Java 5.0中实现JSR-223的方法(图一)
  图1 rt.jar的目录结构

  OK,下面开始删除文件.... 除了com.sun.script、sun.org、javax.script、META-INF目录之外,其余的目录全都删除。删除后如下图所示:

  Java 5.0中实现JSR-223的方法(图二)
  图2 删除后的目录结构

  目录做好之后,下面开始按照JAR规范所描述的Service Provider方法来创建文件以便于 javax.script.ScriptEngineManager 的检索:

  ·在META-INF目录下建立一个名称为 services 的目录。

  ·在 services 目录中新建名称为 javax.script.ScriptEngineFactory 的空文件。

  ·在 javax.script.ScriptEngineFactory 文件中,写入“com.sun.script.javascript.RhinoScriptEngineFactory”数据,注重不写引号。

  Java 5.0中实现JSR-223的方法(图三)
  图3 新加入的services目录和文件

  最后,将所有改动保存到jsr-223.jar文件中,工作完成!

  3. 测试包

  将jsr-223.jar加入到项目的库中,然后编写下面的代码:

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
engine.put("age", 21);
engine.eval("if (age >= 18){ " +
  " print('Old enough to vote!'); " +
  "} else {" +
  " print ('Back to school!

上一篇:《java与模式》笔记-----抽象类和接口 人气:525
下一篇:高效处理Java异常的两种方法 人气:502
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-6 飞天论坛FTBBS ASP v6.3 Build 0
2008-7-6 飞天论坛FTBBS ASP v6.3 Build 0
2008-7-6 飞天论坛FTBBS ASP v6.8 Build 0
2008-7-6 讯息内容管理系统 v2.1
2008-7-6 三五电影程序 v2.0
2008-7-6 神鹰腾讯小说小偷 v3.0
2008-7-6 EasyIDE Framework v1.0 Build 2
2008-7-6 品告CMS系统(电影版) v0.9
2008-7-6 QQ自动登录器 C# 源码 v1.0
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 GoodCalculator2.0版固件计算器
2008-7-5 RepoName源地址搜索工具 v1.21b
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 TouchCopy多媒体管理软件 v3.13完
2008-7-5 VideosTone视频铃声 v1.1汉化破解
2008-7-5 TouchPad触摸板 v4.44破解版
2008-7-5 VideosTone破解补丁 v1.0
2008-7-5 Feeds GoogleReader客户端 v0.4.3


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報