JRuby是什么? JRuby语言概览

开发 后端
很多Java程序员在谈论JRuby,JRuby是什么?JRuby是一个纯Java实现的Ruby解释器。通过JRuby,你可以在JVM上直接运行Ruby程序,调用Java的类库。本文将向您详细介绍JRuby语言。

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

JRuby是一个纯Java实现的Ruby解释器。通过JRuby,你可以在JVM上直接运行Ruby程序,调用Java的类库。很多Java编写的Ruby IDE都是使用JRuby来解释语法的。 2006年,SUN雇佣了两名JRuby团队的两名核心成员Charles Nutter和Thomas Enebo全职开发JRuby,后来ThoughtWorks也雇佣了一名JRuby项目的核心成员全职开发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类的别名。

 

【编辑推荐】

  1. JRuby性能优化的四点建议
  2. JRuby中调用java带可变参数的方法
  3. 使用JRuby生成JVM代码
  4. JRuby入门教程:从无到有建立***个Hello World
  5. 如何在tomcat上配置jruby on rails
责任编辑:佚名 来源: 豆豆网
相关推荐

2009-07-17 17:02:54

JRuby是什么

2009-12-17 18:16:44

JRuby语言技术

2009-07-20 09:22:36

用jruby调用jfr

2012-04-16 14:55:54

JVMJRuby

2009-07-17 17:11:47

Ruby生成JVM代码

2011-08-10 09:54:10

JRubyJava 7

2009-07-20 15:37:26

JRuby安装JRuby配置

2009-07-17 16:43:02

JRuby性能优化

2009-07-17 16:17:04

在tomcat上配置j

2011-10-28 14:23:46

Ruby

2009-07-20 15:42:34

监控JRubyJProfiler

2009-07-17 17:34:15

JRuby On Ra

2009-07-17 17:49:39

JRuby学习

2012-05-23 10:08:30

JRubyJava红帽

2011-03-17 09:27:00

JRuby

2010-03-19 09:12:05

JRuby

2014-12-23 14:41:32

JRuby

2010-05-13 09:07:13

JRuby

2009-07-17 17:39:35

在NetBeans环境

2009-09-08 11:05:00

JRuby入门Ruby
点赞
收藏

51CTO技术栈公众号