什么是JRuby

作为一个Java程序员,你不要想在产品中使用Ruby直到你能够让它和存在的Java应用程序和类库进行交互,而这些程序和类库之中能够支持Ruby的很多种类的基本功能。JRuby,JVM下的一个开源Ruby解释器,能够在Java里面使用Ruby类库。就像标准的Ruby解释器一样,除开使用Ruby调用本地方法(C代码)或者Java类库以外,Ruby代码都能够在JRuby里面正确执行。

相比较于微软的.NET平台的公共语言运行时,JVM往往只能够支持一种语言。但是事实上,JVM平台不仅仅能够支持Java,而且可以支持Python、JavaScript、Groovy、Scheme,和其他各种语言,这意味着有必要的时候,Ruby代码能够和这些语言很好地进行交互。

在2006年7月中旬,JRuby仅仅有一个预览版本(0.9)。但是它迅速发展起来:一个志愿者团队从2005年一月开始总共发布了五个版本。JRuby通过针对标准解释器的不断评估测试逐渐成熟起来,而且现在已经超过90%的测试都是在基本支持Ruby on Rails这个框架。

为了尝试JRuby,保证Java SE 5 是安装好了的而且JAVA_HOME环境变量也是设置好了的。从JRuby的工程页面下载压缩包然后解压。设置JRUBY_HOME环境变量到JRuby安装的根目录。你可以在bin目录里面尝试着用jirb进行交互。大多数场合,你将使用JRuby解释器——创建一个文件将文件名作为一个参数传递到JRuby的bin目录下批处理脚本。

除了执行先前的Ruby代码,你仍然可以使用JRuby来构造Java对象,调用Java方法,从一个Java类继承。一个Ruby类能够实现Java接口——有必要的话可以在Java里面静态调用Ruby方法。

为了从Ruby访问Java需要初始化类库,需要以”java”命令开始。接下来用include_class方法指定需要使用的Java类,比如,include_class “javax.jms.Session”。你能够使用include_package导入整个Java包到Ruby模块里面。就像Java导入包的通配符语句一样,尽量避免include_package使用产生的名称冲突是明智的;在JRuby里,如果解释器为了需要的类搜索所有的包也是格外不明智的。尽可能严格地使用include_class。

很多Java标准类的名称和Ruby类的名称相同。为了解决这样的冲突,传递一个代码块到include_class函数,为这个Java类返回一个新名称,而且JRuby将使用这个名称作为Java类的别名。

时间: 2024-11-03 21:59:29

什么是JRuby的相关文章

通过一个Java应用服务器使用JRuby on Rails和XML增强Ajax

Ruby on Rails 框架提供了一些非常方便的 XML 特性,这使使用数据库数据 进行开发和为 JavaScript 应用程序提供 XML 格式的数据库数据变得更加简单 .JavaScript 还具有内置的 XML 解析功能,因此可以非常轻松地接收和解析 XML 格式的数据.但是,如果要在不部署额外服务器的情况下接入 Java 应用程序,该如何做呢?这正是 JRuby 的工作.JRuby on Rails 是 Ruby on Rails 框架的 Java 实现,通过将 Ruby 应用程序部

使用JRuby和Swing进行跨平台开发

使用 Monkeybars JRuby Swing 库快速开发桌面应用程序 使用 Ruby 除了可以构建 Web 和控制台应用程序外,还可以编写复杂的 GUI 桌面应用程序,这些桌 面应用程序可以不作修改地在多种平台上运行.得益于 JRuby,Ruby 的传统 C 实现的健壮替代品,Ruby GUI 工具包可以使用用于 Java 平台的 UI 工具.本文介绍一个用 JRuby 和 Swing 构建应用程序的库 Monkeybars,并讲解一个示例应用程序. Ruby 目前被作为一种用于构建 We

如何在NetBeans中进行JRuby开发

前言介绍 JRuby是在著名的Ruby编程语言的基础上的纯Java的一种实现,它是动态的,开源的编程语言,特色是简单,具有很高的开发效率.Ruby具有很好的语法,编程语句读起来很自然,并且很容易编写.这篇文章给你演示如何使用NetBeans集成开发环境做JRuby的开发. NetBeans集成开发环境是免费的,对于软件开发者来说是开源的集成开发环境.NetBeans集成开发环境提供开发者所需要的所有工具,让他们去创建专业的跨平台的桌面,企业,web,移动应用程序.在这篇文章中,你将学到如何将JR

在Rational Function Tester中使用jruby

一.概述 Rational Function Tester是IBM的一款功能自动化测试工具,使用JAVA作为脚本语言,不了解他的朋友可以去IBM网站看看. RUBY是目前WEB开发中炙手可热的语言,简单,灵活,宽松,并且有趣.在公司今年的自动化测试项目中使用了RFT搭建测试框架,同时对于页面中一些OCX控件的识别采用RUBY进行识别.这样的话就需要解决JAVA代码与RUBY脚本之间变量传递和方法调用的问题,JRUBY自然成了最好的选择. 这篇文章里我把自己配置和实验的过程帖出来,与大家分享和交流

在Operamasks中使用ELite和JRuby动态语言的秘笈

随着微软正式发布IronPython,推出基于第一款基于动态语言的开源编程工具:紧接着Sun又正式对外宣布收购JRuby,Ruby将成为JVM支持的第一个动态语言,动态语言一直围绕在我们的身边.如何使用动态语言给我们编写JavaWebUI带来帮助?什么样的动态语言能够适合Java开发团队呢?SirsiDynix的架构师TravisJensen通过五条粗略的标准来评估Groovy,JRuby,Jython这三种动态语言在Java上的表现. 1.动态语言与Java之间的交互 2.IDE工具的支持 3

使用Java Web Start部署JRuby应用

你通常需要一个命令来进入Ruby和Java的联合世界: include Java 这使你可以实例化Java类,调用其方法,甚至继承它们,就好象它们仅仅是普通的Ruby对象一样.但这其中有一些微妙的差异,这篇文章将向你展示如何管理它们以便能以最快的速度设计出新的应用并部署到你的客户那里. 这篇文章基于一个简单的应用,该应用使用JRuby和Swing实现了一个简单的ObjectSpace浏览器.Ruby的ObjectSpace特性提供了一种方式来访问系统中所有对象.例如,我们可以这样打印所有使用中的

JRuby中调用java带可变参数的方法

今天同事遇到的问题,用JRuby调用一个java方法,该方法使用了jdk1.5的可变参数.我一开始以为只要简单地将可变参数表示为数组即可,例如下面的两个java类: public class Echo{ public void echo(String name){ System.out.println(name); } } public class Test{ public void hello(String name,Echoargs){ System.out.println("hello,&

JRuby:集Java和RoR之所长

Rails正迅速成为轻量级Web应用开发方面的领头羊.有了JRuby, Rails就有望获得Java库和JVM具有的功能.效率及业界认可度. JRuby是面向Ruby.基于Java虚拟机(JVM)的一种解释程序,它结合了Ruby语言的简易性和功能强大的JVM的执行机制,包括与Java库全面集成.Rails彻底加快及简化了Web应用的开发,不过它让人觉得不够成熟,特别是在高端企业级功能方面.另一方面,Java平台及其虚拟机.库和应用服务器的速度.稳定性和功能方面却一直在提升,现在已被公认为是开发高

JRuby的性能优化(update)

越来越觉的JRuby是个很有前途的项目,结合Ruby的性感语法和java极其丰富的类库,况且有团队持续不断地修正bug.改进性能,这样的玩意完全有成为"少男杀手"的潜质.JRuby wiki上列出了性能优化的四条建议: 1.调优编译器,JRuby早就弃暗投明跟随XRuby走上了编译这条牛B的道路,将Ruby Script编译成字节码,因此这个环节是断断不能忽略的. 两种编译方式: AOT模式:直接生成class文件,脱了Ruby这层皮,咱就是人见人"爱"的java了

JRuby:谁说鱼与熊掌不可兼得?

记得以前在和朋友聊天时讲到自己最近在用Ruby写东西,他们大多会露出好奇的表情,问我什么是Ruby.可现在,这种情况应该不会出现了,Ruby on Rails早已成了人们讨论的热点,它也把Ruby带到了聚光灯下,越来越多的人开始使用Ruby,甚至爱上了这门语言. 如果你是一个Java开发者,想在实际项目中尝试Ruby和Rails时肯定会有这样的问题:我有很多遗留的Java资源,比如EJB和Java库,是把它们用到新项目里,还是放弃它们?有些问题用Java的解决方案显然更好,能不能结合Ruby和J