最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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:40477
用户头像

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

关注

评论

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

SAP | 认识 abap 工作台(下)

暮春零贰

SAP abap 10月月更

跟着卷卷龙一起学Camera--双摄01

卷卷龙

ISP camera 10月月更

Java面向对象之方法块+this关键字

魏铁锤

10月月更

Java面向对象之构造方法

魏铁锤

10月月更

「Hive进阶篇」三、HQL底层执行过程及原理详解

大数据阶梯之路

大数据 hive 面试 数仓

还在为sql注入眼花缭乱的过滤而烦恼?一文教您快速找出所有过滤内容

贤鱼很忙

网络安全 SQL注入 10月月更

25分钟了解命令执行漏洞【例题+详细讲解】(一)

贤鱼很忙

网络安全 Web 10月月更

跟着卷卷龙一起学Camera--DNG格式

卷卷龙

ISP camera 10月月更

微信红包后台系统可用性设计实践

Johnny

「前端组件开发」越折腾越有趣,封装了一个表单组件

叶一一

前端 React 组件开发 10月月更

VS2019 添加bits/stdc++.h万能头文件库

Yeats_Liao

后端 Java core 10月月更

2022-10-14:以下go语言代码输出什么?A:0;B:7;C:9;D:不能编译。 package main import “fmt“ func main() { a := []int

福大大架构师每日一题

golang 福大大 选择题

「经验总结」高效开发,老代码可以这样动

叶一一

高效工作 前端 10月月更

微信红包系统设计分享 | 如何扛住100亿次请求?

Johnny

将系统划分为模块(微服务)的必要性

宇宙之一粟

微服务 系统设计 论文阅读 模块化 10月月更

Zepoch节点单日内售罄,市场反响颇高

EOSdreamer111

Spring之核心容器

楠羽

笔记 SP【ring 10月月更

「React开发」梳理HOC的点点滴滴

叶一一

前端 React 10月月更

「Hive进阶篇」四、HQL 高级巧用

大数据阶梯之路

大数据 hive 面试

25分钟了解命令执行漏洞【例题+详细讲解】(二)

贤鱼很忙

sql 网络安全 10月月更

「CSS畅想」我的发呆专属,反复解锁手机屏幕

叶一一

CSS JavaScript 前端 10月月更

Dev-C++5.11安装教程

Yeats_Liao

后端 Java core 10月月更

「前端组件化」以Antd为例,快速打通UI组件开发的任督二脉

叶一一

前端 React 10月月更

Photoshop软件应用项目(二)

张立梵

设计师 ps 10月月更

全链路监控建设的4个重点

穿过生命散发芬芳

全链路监控 10月月更

从手动测试到自动化测试(下)

FunTester

IDEA SpringBoot SQL连接常见五大异常处理

Yeats_Liao

后端 Java core 10月月更

Vue组件入门(五)props +

Augus

Vue3 10月月更

Zepoch节点单日内售罄,市场反响颇高

股市老人

什么是Scrum?Scrum的核心要点和精髓

laofo

Scrum 研发效能 敏捷研发

List的基础数据的处理

卢卡多多

List 10月月更

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