写点什么

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

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

关注

评论

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

在Gitlab-ce的Docker中使用自定义端口

天飞

Docker gitlab

看得懂的区块链及智能合约概念

石君

区块链 智能合约

《零基础学 Java》 FAQ 之 9-Java里的各种数据类型占用多少内存空间

臧萌

Java

看完这篇 HTTPS,和面试官扯皮就没问题了

苹果看辽宁体育

https

SQL 生成斐波那契数列

zero

sql 斐波那契 MySQ

Android | Tangram动态页面之路(四)vlayout原理

哈利迪

android

部门最漂亮的妹子离职了

Geek_6rptuk

团队管理 生涯规划 企业文化 职场

比特币是新生事物吗?

Haiyung

比特币

关于键盘的一些事

BabyKing

vim 缓存 键盘 快捷键 karabiner

从Deepl说起,聊一聊未来的“安全职业”

孤岛旭日

程序员 AI 职业

2020年5月19日 Java并发编程专题

瑞克与莫迪

Java

我的读书笔记-樊登读书法

lmymirror

学习 读书笔记 方法论 读书方式

linux文件系统-inode学习整理

戈坞昂

Linux inode

Kubernetes时代的云容器平台:各家云产品模式逐渐丰富

韩超

腾讯云 阿里云 Kubernetes IaaS PaaS

生活就是这么讽刺,有时候你嘲笑他,有时候你想成为他......

代码诗人

中年危机 文艺 短片小说

「Postman教程 」功能介绍-1

Megatron7

测试 Postman

「Postman教程 」接口测试-2

Megatron7

测试 Postman

程序员的晚餐 | 5 月 19 日 蒜香鸡腿,味道令人惊讶

清远

美食

MacOS 下使用VSCode进行GoLang Test报错

北纬32°

macos vscode Unit Test debug Go 语言

中小型城市商业银行数字化转型实践(二)集成关系ESB APIGateway ServiceMesh

泡菜小仙

架构设计 集成架构 ESB

谁能让你安稳

Neco.W

工作 稳定性 努力工作

中小型城市商业银行数字化转型实践(一)整体技术架构转型(双态IT)

泡菜小仙

数字化转型 架构设计 技术架构

Oracle 数据恢复一例

wong

oracle windows dbf

回“疫”录(21):你这样做的样子真丑

小天同学

疫情 心理 回忆录 现实纪录 纪实

中小型城市商业银行数字化转型实践(三)数据中台建设思路和路径

泡菜小仙

数据中台 数字化转型 数据架构

MyBatis支持的jdbcType 枚举类型

Kevin Liao

520 我用算法帮女朋友的闺蜜选男友

cherubines

Python 算法 数据分析 蒙特卡洛 最优解

奇怪知识点系列:Office 365 CDN 揭秘

手艺人杨柳

Office 365 Microsoft 365 SharePoint Online

如何设计一款“高可用高性能”的发号器?

捉虫大师

Java 高可用 发号器 高性能 raft

实现一个比LongAdder更高性能的计数器有多难?

捉虫大师

Java jdk LongAdder

你的c++团队还在禁用异常处理吗?

泰伦卢

c c++ C#

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