知识大全 JSR-223(Scripting for the Java&nbs
Posted 语言
篇首语:书卷多情似故人,晨昏忧乐每相亲。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 JSR-223(Scripting for the Java&nbs相关的知识,希望对你有一定的参考价值。
JSR-223(Scripting for the Java&nbs 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
最新的Java主版本(Java SE 又称Mustang)现在正处于beta版本阶段 虽然该版本并不像Java 的更新那么多 但是它确实有一些有趣的新特性 毋庸置疑 其中的一个就是对脚本编写语言的支持 诸如PHP Ruby JavaScript Python(或Jython)之类的脚本编写语言被广泛应用于许多领域 并由于其灵活性和简单性而大受欢迎 由于脚本是被解释而不是被编译的 所以可以轻松地从命令行运行和测试它们 这就压缩了编码/测试周期 并提高了开发人员的生产率 脚本通常是动态键入的 其语法极富表现力 所编写出的算法要比Java中的等效算法简明得多 使用起来通常也很有趣 在很多情况下 从Java使用脚本编写语言会很有用 比如为Java应用程序提供扩展 以便用户可以编写自己的脚本进行扩展或定制化核心功能 脚本编写语言可读性更强 也更容易编写 所以(从技术上来说)它们是用于为终端用户提供根据需求定制化产品的可能性的理想语言 早已经有许多Java可用的独立脚本编写包了 包括Rhino Jacl Jython BeanShell JRuby等 新消息是Java 通过一个标准接口为脚本编写语言提供了内置支持 Java 提供对JSR 规范的全面支持 该规范提供了一种从Java内部执行脚本编写语言的方便 标准的方式 并提供从脚本内部访问Java资源和类的功能 Java 附带了与Mozilla Rhino的JavaScript 实现的内置集成 基于该规范 对诸如PHP Groovy和BeanShell之类的其它脚本编写语言的支持也正在进行中 本文关注的是Rhino实现 但是其它语言应该是基本相同的 那么如何在Java 中使用JSR 的实现呢? 偶经过仔细地研究 终于找到了解决方法 干活要从理论开始 根据JavaDoc的说法 javax script ScriptEngineManager 是通过JAR规范中所谓的服务提供商(Service Provider)方法来在库中检索 javax script ScriptEngineFactory 实现类并自动注册的 OK 了解了这个就好办了 准备开始干活哈 开始动手干活了 :) 首先制作JSR 规范实现的包(包括SUN的JavaScript默认实现): 使用WinRAR等压缩工具打开JRE 中rt jar文件(注意要提前备份!我的就是备份为jsr jar) 如图 所示:图 rt jar的目录结构 OK 下面开始删除文件 除了 sun script javax script META INF目录之外 其余的目录全都删除 删除后如下图所示 图 删除后的目录结构 目录做好之后 下面开始按照JAR规范所描述的Service Provider方法来创建文件以便于 javax script ScriptEngineManager 的检索- 在META INF目录下建立一个名称为 services 的目录 在 services 目录中新建名称为 javax script ScriptEngineFactory 的空文件 在 javax script ScriptEngineFactory 文件中 写入 sun script javascript RhinoScriptEngineFactory 数据 注意不写引号
图 新加入的services目录和文件 最后 将所有改动保存到jsr jar文件中 工作完成!
测试包 将jsr jar加入到项目的库中 然后编写下面的代码 ScriptEngineManager manager = new ScriptEngineManager();ScriptEngine engine = manager getEngineByName( js );engine put( age );engine eval( if (age >= ) + print( Old enough to vote! ); + else + print ( Back to school! ); + ); 这时控制台应返回 Old enough to vote! 下面是其在Eclipse下运行的截图 图 测试程序在Eclipse下的运行情况 参考资料
- JSR (Scripting for the Java Platform)规范 Mustang与Rhino Java 中的脚本编写 JAR规范中的Service Provider描述 #Service% Provider 本文的技术支持 中国Eclipse社区() jsr jar包下载 jar
相关参考
花生收获劳动强度大,又值“三秋”大忙季节,劳动力不足,如果花生果不能及时摘下晒干,就有可能霉烂变质,造成严重损失。因此,我们组织技术人员有关单位合作开研制了5TH-1.5型花生摘果机,设计紧凑、效率高
该产品是无锡中收联合收割机有限公司于1996年在消化、吸收国内外先进技术的基础上研制开发生产的,经过不懈的技术攻关和国产化工作,主要技术指标已达到或接近国外同类机型的技术水平。太湖牌1450型结构合理
该产品是无锡中收联合收割机有限公司于1996年在消化、吸收国内外先进技术的基础上研制开发生产的,经过不懈的技术攻关和国产化工作,主要技术指标已达到或接近国外同类机型的技术水平。太湖牌1450型结构合理
知识大全 asp For Each Next 用法与For Each实例教程
aspForEachNext用法与ForEach实例教程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
常见的for循环一般是一下代码这种结构 for(inti=;i<;i++) ConsoleWriteL
【C#】干掉for循环 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在C系列语言中for循环扮
知识大全 从数据结构的角度分析 for each in 比 for in 快的多
今天仔细琢磨了会从数据结构的角度分析了下觉得forin和foreachin效率上有着本质的区别无论是JS还是AS 之前听说火狐的JS引擎支持foreachin的语法例如下述的代码复制代码
利用for循环打印*?表?*=*=?*=*=?*=?*=*=?*=?*=?*=*=?*=?*=?*=?*=*=?*=?*=?*=?*=?*=*=?*=?*=?*=?*=?*=?*=*=?*=?*=?*
PHPWeb开发学习实录:用for循环显示最新数据问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
PHP快速入门教程之for循环 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!<><head><ti