写点什么

JRuby 1.4 RC1 发布:增加了 Windows 安装包、1.8.7 支持及新的嵌入式 API

  • 2009-10-18
  • 本文字数:899 字

    阅读完需:约 3 分钟

JRuby 1.4 RC1 发布了(点击此处查看JRuby 1.4 RC1 的所有版本)。

JRuby 1.4 RC1 进行了大量的改进,如对Ruby 1.8.7 的支持及新的Java 集成支持(此前InfoQ 曾进行过报道)

Windows 用户可能会对新的 JRuby 安装包情有独钟,该安装包是个.exe 文件,可从 JRuby 1.4 下载点下载

对于那些想在应用中嵌入 JRuby 进行脚本编程或是想从 Java 代码中调用 JRuby 的开发者来说有个好消息,现在可以使用“Red Bridge”或是 org.jruby.embed 了,这是一个新的嵌入式 API,将在 JRuby 的未来版本中替换掉 JavaEmbedUtils。

Red Bridge 的创建者 Yoko Harada 解释到

在 JRuby 1.4 RC1 发布后,用户可能会被 JRuby 的 JavaEmbedUtils 和 Red Bridge 搞晕了,到底应该用哪个呢?毫无疑问,新用户应该首选 Red Bridge,因为其使用简单且功能强大。现在我们正在商讨如何废弃 JavaEmbedUtils 以及与嵌入式相关的其他接口。很多包(包括 JRuby Rack)都使用到了 JavaEmbedUtils 以及其他嵌入式 API,因此这是一个牵一发而动全身的事情,需要谨慎行事。

Red Bridge 和其他嵌入式 API 修复了一些问题,像是如何跨越对 JRuby 的不同调用查看调用变量等。新的 org.jruby.embed.ScriptingContainer 文档中写到:

第三个示例介绍了如何在多个赋值语句之间保持局部变量。该特性模拟了 JRuby 的 BSF 引擎。在 Ruby 语义下,一旦赋值结束,局部变量就失效了。因此,该特性是可选的,同时在容器实例化时用户需要指定 LocalVariableBehvior.PERSISTEN。

示例代码:

复制代码
ScriptingContainer container = new ScriptingContainer(LocalVariableBehavior.PERSISTENT);
container.runScriptlet("p = 42");
container.runScriptlet("puts #{p}");

如果没有指定 LocalVariableBehavior.PERSISTENT,那么在第二次调用 container.runScriptlet 时变量 p 就失效了,因此需要将其声明为全局变量而非局部变量。

我们希望大家都来试用 JRuby 1.4 RC1,有问题请及时报告。

最后,对 JRuby 感兴趣的用户可以阅读 R.J. Lorimer 关于 JRuby 内核的系列文章,最新的文章深入分析了 JRuby JIT。

查看英文原文: JRuby 1.4RC1 Released, Adds Windows Installer, 1.8.7 Support, New Embedding API

2009-10-18 21:40637
用户头像

发布了 88 篇内容, 共 269.8 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

分享 6 个实用的 Vue 技巧

devpoint

Vue Vue3 8月日更

ElastricSearch第三弹之存储原理(详细+易懂)

阿Q说代码

ES 8月日更 flush Refresh translog

架构实战营 模块五 作业

一雄

作业 架构实战营 模块五

也许你曾对怎么样才算认真做事情感到好奇,这本书给我三个启发,我想与你分享。

叶小鍵

JAVA对于文件IO操作的支持

卢卡多多

Java 文件 io 8月日更

架构实战营 - 模块五作业

李东旭

「架构实战营」

前端之算法(六)分而治之

Augus

算法 8月日更

网络攻防学习笔记 Day107

穿过生命散发芬芳

网络安全 8月日更

《社会心理学》-怎么说服他人(整理稿)

箭上有毒

8月日更

智能时代的信任口诀:让计算远离算计

脑极体

极光开发者周刊【No.0813】

极光GPTBots-极光推送

【设计模式】观察者模式

Andy阿辉

C# 编程 后端 设计模式 8月日更

python--构造方法笔记

加里都好

JavaScript 中 Array map() 方法

HoneyMoose

架构训练营模块5-作业

sophiahuxh

QDS07 Mysql 安装指定版本

耳东@Erdong

MySQL 8月日更 qds

Elasticsearch 日志监控方案

Se7en

前端基础一之HTML篇

ベ布小禅

8月日更

Linux之wget命令

入门小站

Linux

在线图片水印平铺工具

入门小站

工具

JavaScript 中 Array map() 方法

HoneyMoose

你知道关闭页面时怎么向后台发送消息吗?

编程三昧

JavaScript 大前端 8月日更

Java 操作 Office:POI word之网络图片处理

程序员架构进阶

Java Apache POI 实战问题 8月日更

如何写好一篇自媒体文案:把握节奏引起共鸣

石头IT视角

模块5作业

Geek_35a345

OLAP 简介

LeifChen

OLAP 多维分析 8月日更

Lodash 是什么

HoneyMoose

介绍一个好用的网络工具traceroute命令

liuzhen007

8月日更

iOS开发:真机调试提示XXX, but code signing identity Apple Development问题

三掌柜

8月日更 8月

架构实战营 - 模块五作业

Julian Chu

架构实战营

JRuby 1.4 RC1发布:增加了Windows安装包、1.8.7支持及新的嵌入式 API_Java_Werner Schuster_InfoQ精选文章