博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JRuby——Java和Ruby的强强联合
阅读量:7048 次
发布时间:2019-06-28

本文共 2694 字,大约阅读时间需要 8 分钟。

什么是JRuby

JRuby是一个纯Java实现的Ruby解释器。通过JRuby,你可以在JVM上直接运行Ruby程序,调用Java的类库。很多Java编写的Ruby IDE都是使用JRuby来解释语法的。

JRuby,JVM下的一个开源Ruby解释器,能够在Java里面使用Ruby类库。就像标准的Ruby解释器一样,除开使用Ruby调用本地方法(C代码)或者Java类库以外,Ruby代码都能够在JRuby里面正确执行。

为什么JRuby

除了适合用来开发面向Internet 的Web 应用之外,还有很多公司将JRuby 看作是使Rails 进入企业应用的关键技术,例如ThoughtWorks。JRuby 允许Rails 应用部署在流行的Java 应用服务器中,很多企业早已建立了这样的运行环境,但因为某些原因无法为运行Rails 应用建立一个全新的运行环境。任何技术的流行,深究起来,其背后都有经济上的原因。Rails 能够达到5 倍于SSH 的开发效率,使它成为了一个几乎无法被抗拒的选择。Rails 进入企业应用,只是一个时间问题,它的前景十分光明。

下载和安装JRuby

到JRuby的官方网站:

                       图:JRuby官方网站截图

下载最新版本的JRuby。这里边有windows版本和linux还有macos版本的,你可以根据你自己的环境下载相应的版本。

下载完成之后解压缩,然后到解压后的目录,我们下文中提到的目录<JRUBY_HOME>就是默认的解压根目录。

<JRUBY_HOME>下执行bin\jruby -v

如果出现如下提示则表示成功运行:

             图:验证JRuby是否成功运行

运行第一个JRuby程序

<JRUBY_HOME>下的samples目录下新建文件random.rb,加入如下程序:

View Code
1 require 'java'2 include_class 'java.util.Random'3 r = Random.new(123)4 puts "Some random number #{r.nextInt % 10}"5 r.seed = 4566 puts "Another random number #{r.nextInt % 10}"

然后执行如下命令:

            图:运行JRuby random.rb

就会得到对应的结果。

其中Java调用JRuby和JRuby调用Java的例子可以在下面的链接中看到,写的很详细:

https://github.com/jruby/jruby/wiki/JRubyAndJavaCodeExamples

在JRuby运行Swing

在上面的例子运行成功后,我们接下来运行swing的例子,在sample目录下新建文件swing2.rb,输入如下内容:

View Code
1 # Import Java packages 2 include Java 3  4 import javax.swing.JFrame 5  6 frame = JFrame.new("Hello Swing") 7 button = javax.swing.JButton.new("Klick Me!") 8 button.add_action_listener do |evt| 9   javax.swing.JOptionPane.showMessageDialog(nil, <
Hello from
JRuby.
11 Button '#{evt.getActionCommand()}' clicked.12 EOS13 end14 15 # Add the button to the frame16 frame.get_content_pane.add(button)17 18 # Show frame19 frame.set_default_close_operation(JFrame::EXIT_ON_CLOSE)20 frame.pack21 frame.visible = true

然后执行bin\jruby samples\swing2.rb

我们可以看到调用的Swing程序:

        图:JRuby调用Swing程序

使用netbeans开发JRuby

到netbeans官方网站上下载

netbeans,因为最新版本安装这个插件有问题,所以这里下载的是netbeans7.1.1。

安装完成后到netbeans选择菜单“工具->插件”,将出现如下界面:

                       图:netbeans安装Ruby插件的界面

然后按照这篇文章中的描述,下载对应的文件,选择安装:

然后点击“工具->Ruby平台”,配置Ruby环境,因为我们选用的是JRuby,所以这里配置解析器为JRuby。

                  图:JRuby平台的环境配置

新建一个ruby应用

                  图:新建Ruby应用

然后选择工作空间和编译环境:

                  图:选择工程空间和编译环境

点击完成,然后在生成的main.rb文件中输入:

View Code
1 class ADuck 2     def quack() 3         puts "quack A"; 4     end 5 end 6  7 class BDuck 8     def quack() 9         puts "quack B";10     end11 end12 13 # quack_it doesn't care about the type of the argument duck, as long14 # as it has a method called quack. Classes A and B have no15 # inheritance relationship.16 def quack_it(duck)17     duck.quack18 end19 20 a = ADuck.new21 b = BDuck.new22 quack_it(a)23 quack_it(b)

点击运行或者按F6,就可以看到运行的结果。

转载地址:http://ladol.baihongyu.com/

你可能感兴趣的文章
C–gcc命令行下的参数
查看>>
mysql 连接查询 和 子查询
查看>>
UploadFile控件,提交图片后,页面预览显示刚刚提交的图片
查看>>
调查:2013年十大急需的热门IT人才
查看>>
为什么memset的第二个参数不把int替换成char
查看>>
超级芯片电路板问世 比现有电脑快9000倍
查看>>
求幂算法
查看>>
使用asp.net调用谷歌地图api
查看>>
文件读取输入
查看>>
Mysql5.7初始化成空密码或随机密码的方式
查看>>
贝中斯公式相关知识
查看>>
UseAdaptiveSizePolicy与CMS垃圾回收同时使用导致的JVM报错
查看>>
编程生涯
查看>>
WebStorm设置编辑器中的字体大小
查看>>
JAVA 8 默认方法-Default Methods
查看>>
Eclipse启动时选择workspace设置
查看>>
左图有文本,图片自由缩放
查看>>
SQL Server中的锁
查看>>
js时间戳格式化成日期格式的多种方法
查看>>
gdb fabs错误输出
查看>>